背景:
一开始是在阿里云上申请免费SSL证书,有效期一年,到期后重新申请。由于域名比较多,每个域名的证书申请时间都不一样,总是隔三差五的有证书到期提醒,不胜其烦。
这里我们使用的是Let’s Encrypt签发的证书,配合Certbot客户端,由于申请的免费证书有效期只有90天,所以我们需要再配置一个定时任务,定期检测更新证书
1、系统环境
系统:centos7
python:v2.7x
2、安装Certbot客户端
1 | > yum install certbot-nginx |
3、生成证书,一次只能配置生成一个域名的证书,如果有多个域名,该命令多执行几次即可
1 | > certbot --authenticator standalone --installer nginx --pre-hook "nginx -s stop" --post-hook "nginx" |
生成过程中需要指定域名,填写邮箱,然后一步步按照提示执行即可
4、查看配置
正常生成证书后,会在指定的域名配置下自动加上证书的路径,示例如下
1 | listen 443 ssl; # managed by Certbot |
5、更新证书
1 | > certbot renew |
6、配置定时任务,vim /etc/crontab
新增以下内容
1 | # 每天0点、12点检测更新 |
安装配置很简单,这里我们主要说下可能会出现的错误:
1、ImportError: No module named ‘requests.packages.urllib3’
解决办法:
1 | > pip uninstall urllib3 |
2、ImportError: ‘pyOpenSSL’ module missing required functionality. Try upgrading to v0.14 or newer.
解决办法:
1 | > yum remove pyOpenSSL |