利用Certbot工具部署Let's Encrypt免费SSL证书

8月 2, 2016

Let’s Encrypt是一个由电子前哨基金会、Mozilla基金会、Akamai、密歇根大学、思科联合发起的一个项目。它旨在为站长提供一个免费的、完全自动化的证书申请过程,从而让整个互联网都能享受到HTTPS加密。Let’s Encrypt的证书申请过程非常简单、安全、快速、自动化并且免费。Let’s Encrypt是一个中间CA,它的CA证书由IdenTrust签发。IdenTrust是一个Root CA,受到所有主流浏览器的信任。从2015年10月后,Let’s Encrypt的中间CA证书被chrome、Firefox、Microsoft Edge、Safari和Opera所信任。

certbotLet’s Encrypt官方里的自动化配置工具,可以实现自动化申请、安装和更新证书。

certbot的官网也有详细的介绍,下边我们安装官网的教程进行安装。

yum安装certbot

1
yum install -y certbot

生成域名证书

1
certbot certonly --standalone -d example.com -d www.example.com

找到证书位置

我们可以在上面生成完成看到证书被放到/etc/letsencrypt/live/example.com/目录中,这个我们根据自己网址的文档区别。里面可以看到有cert.pem 、chain.pem 、 fullchain.pem 、privkey.pem四个文件。

将SSL文件部署到网站中

在nginx.conf中的server块里添加

1
2
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

将listen改为

1
listen       443 ssl;

重启nginx

1
service nginx reload

续约

每个Let’s Encrypt的证书的有效期都为90天,certbot为我们提供了续约的功能,执行以下命令即可。

1
certbot renew --dry-run

不过经常需要去执行是不是很麻烦,有时忘记了就误事了,我们将其添加到crontab中,每个月执行一次。certbot renew —quiet是certbot renew –dry-run 的简化版,没有输出内容,适合自动执行。

1
2
crontab -e
0 0 1 * * certbot renew --quiet

pip install –upgrade git+https://github.com/posborne/putio-sync.git