为了实现网站的HTTPS化,需要在服务器上配置CA证书,Let'sEncrypt是一个免费的CA证书,而且提供了Certbot客户端方便进行安装。
我的网站环境:
阿里云ECS + CentOS6.8 + Nginx
安装CertBot
wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto
这里遇到一个问题:之前设置了pip的镜像地址为阿里云,导致部分python lib下载不下来。
解决方法:vi .pip/pip.conf 注释掉index-url=http://mirrors.aliyun.com/pypi/simple/这一行
安装Nginx插件
sudo ./path/to/certbot-auto --nginx
# 也支持apache
# sudo ./path/to/certbot-auto --apache
这里也遇到一个问题
- Nginx路径未加入到到环境变量,导致certbot找不到nginx
解决方法:ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx ln -s /usr/local/nginx/conf/ /etc/nginx
检测HTTPS是否可用
此时应该已经就可以通过https访问你的域名了,可以到https://www.ssllabs.com/ssltest/analyze.html?d=你的域名 检测一下
注:如果发现访问不了,请检查服务器或者ECS的安全组是否开启了443端口
设置自动更新
由于Let'sEncrypt的证书只有90天的有效期,所以需要在失效前进行刷新,运行如下命令:
./path/to/certbot-auto renew
建议设置crontab实现定时自动刷新,如下配置了每月1号0点进行自动刷新
0 0 1 * * /usr/local/bin/certbot-auto renew --pre-hook "service nginx stop" --post-hook "service nginx start"