使用Let'sEncrypt免费证书配置HTTPS

为了实现网站的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

这里也遇到一个问题

  1. 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"

推荐阅读更多精彩内容