2017年12月20日

免费https证书申请

作者 非鱼

之前在阿里云直接购买的免费https证书一年到期了,准备续费的时候发现居然不能买了,剩下的都是收费证书。
找来找去,只有Let’s Encrypt最方便了。
但是Let’s Encrypt不像其它的证书网站可以直接在线申请,需要使用它的自动化工具来处理。

1、安装certbot https://certbot.eff.org/
对于ubuntu+nginx:

$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install python-certbot-nginx

2、申请证书
sudo certbot --nginx
这个命令会自动下载证书并自动修改你的nginx里的站点配置文件,如果不放心,可以使用
sudo certbot --nginx certonly
这样就只下载证书不修改配置文件了。

注意运行该命令之前需要确认所有的站点都已经配置完成,它取域名都是根据nginx配置文件自动去取的。
然后选择哪些域名需要申请证书,这里需要输入的是它给出来的域名的编号。
然后它就会自动搞定,证书下载完成,然后自己加到nginx的站点配置里去。

3、它下载的证书有效期只有三个月……,所以需要做一个自动更新。先运行测试一下:
sudo certbot renew --dry-run
如果最后显示成功,就说明自动更新是正常的,然后就可以建一个每天自动执行的计划任务:
certbot renew
证书快要到期的时候它就会自动更新掉,没到期的时候它什么也不会做。