背景
-
操作系统
-
VPS位置
阿里云香港
开始使用Cloudflare的免费https证书,但是由于Cloudflare的免费节点都在美西,而我的vps在香港,如果要用Cloudfalre的香港节点就需要成为付费用户。而国内的CDN都需要备案,因此,选择了直连。
为了继续支持https,选择了Let's Encrypt
的免费证书,主要记录一下部署的过程以及遇到的一些问题
部署Let's Encrypt免费证书
-
Certbot安装
Certbot可以自动完成获取和更新Let的加密SSL证书和配置Web服务器的任务。# yum install certbot
-
证书获取
# certbot certonly --agree-tos --email admin@example.com --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com
/var/lib/letsencrypt/:这里时你的网站根目录
example.com:你的域名 -
自动更新证书
由于Let's Encrypt的免费证书只有90天,因此需要在证书过期之前去获取更新,可以通过定时计划来实现:# crontab -e 0 */12 * * * /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(3600))' && certbot -q renew --renew-hook "systemctl reload nginx"
常见问题
-
requests.packages.urllib3 错误的处理
在通过certbot获取证书时出现的错误,解决方案:pip install requests urllib3 pyOpenSSL --force --upgrade pip install --upgrade --force-reinstall 'requests==2.6.0'
-
ImportError: 'module' object has no attribute 'check_specifier
在安装上述库时出现的问题,解决方案:pip install --upgrade setuptools==30.1.0