美文网首页
Let's Encrypt https证书部署

Let's Encrypt https证书部署

作者: 浚轩君 | 来源:发表于2018-07-12 10:55 被阅读112次

前言

小程序,坑爹的小程序所有的接口必须是https的,本来想偷的懒现在是必须的要还上。先是去aliyun看了看https证书价格最最便宜一年也要1700,玩蛋去吧,我们无产阶级用不起。只能找一个替代方案,这个替代方案就是Let's Encrypt的免费证书,但是免费就是要手动了(每三个月需要生成一个新证书),这个年头有钱才有方便。

安利下帮朋友做的小站:传送门

0x1.环境介绍

我的Linux主机是阿里云,也是为了简单我没有选择Centos系统,而是应用了Ubuntu,没别的就是简单(不偷懒的技术人员不是好男人)。

其他标配选择,以下三个配置不讲了,PHP程序员都懂的:

  • Nginx
  • MySQL
  • PHP

0x2.配置证书

首先,我们需要安装一个https生成的客户端

sudo apt-get install letsencrypt

在你生成证书之前,请你先关闭你的nginx服务,防止对应的端口占用。这个操作我都是晚上做的,白天网站还是有人的。

sudo letsencrypt certonly --standalone

接下来会出现一个文字图形界面。输入你的电子邮箱地址。

输入邮箱地址

之后同意条款

同意条款

最后输入服务器的域名。在具有DNS记录的前提下,你还可以加上任何你想要的二级域名。多个域名需要用空格分割开,稍等片刻后,客户端会完成身份验证。相关证书会放到 /etc/letsencrypt 文件夹下。

输入域名空格分割

把example.com替换成为你自己的域名。保存后记得启动nginx服务器

http {
    server {
        listen 80; 
        listen [::]:80;
        server_name example.com www.example.com;
    
        listen 443 ssl;
        ssl_certificate /etc/letsencrypt/live/example.com/cert.pem;
        ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
        
        location / {
            root /var/www/html;
        }
        ...
    }
    ...
}

0x3.证书更新

这个证书虽然说是免费,但是时间只有三个月,所以必须每三个月更新一次证书,否则证书过期。好在别人已经有脚本了,不怕搞事情。

wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto

这个证书自动更新程序,假设我放在 /data/ 文件夹中,那么我们的运行路径就是 /data/certbot-auto。这样我们可以写脚本了去跑crontab了。

接下来,创建一个shell脚本 refresh.sh

touch refresh.sh
chmod a+x refresh.sh

然后 vi refresh.sh 输入以下内容

#!/bin/bash
# 先停止 Nginx, 释放端口
sudo service nginx stop
# 更新证书
sudo /data/certbot-auto renew --force-renew
# 启动 Nginx
sudo service nginx start

最后当然是 crontab -e 你说三个月过期,我两个月更新一次不过分吧

# 每隔两个月一号23:59执行
59 23 1 */2 * /data/refresh.sh

所有的设置完毕,希望这个总结对大家有用。

相关文章

网友评论

      本文标题:Let's Encrypt https证书部署

      本文链接:https://www.haomeiwen.com/subject/zdplpftx.html