Let’s-Encrypt
为http站点添加https支持,需要从证书发行机构获取SSL/TLS 证书。常见的免费证书有两种:
安装
配置
--webroot
表示以webroot模式运行,此处我们不选择standalone模式-w /www/html
表示站点根目录在/www/html-d suncle.me -d www.suncle.me
表示为@主机和www主机生成共同的证书
按照提示操作成功后,提示:
证书自动更新
Let’s Encrypt 只有3个月的有效期,所以我们需要定时去更新证书。
可以通过运行:certbot renew --dry-run
来测试自动生成是否能够正常运行。如果正确执行,我们就可以通过以下命令更新证书:
如果要达到自动更新证书,可以借助crontab
或者systemd
定时执行上面的更新命令。Let’s Encrypt官方建议一天更新两次最好。因为证书没有到期之前是不会更新,因此即使一天执行两次也不会有什么影响。
具体执行时间可以参考以下crontab格式进行修改:
配置Nginx SSL证书
修改/usr/local/nginx/nginx.conf文件如下(最好先备份)
以上配置文件nginx.conf中需要修改的字段主要有:
- server_name www.suncle.me suncle.net blog.suncle.net;
- ssl_certificate /etc/letsencrypt/live/suncle.me/fullchain.pem;
- ssl_certificate_key /etc/letsencrypt/live/suncle.me/privkey.pem;
listen 443 ssl http2;
这一句中,如果Nginx编译安装的时候没有安装ngx_http_v2_module
模块,则需要先安装。或者不采用http2协议,直接listen 443 ssl
即可
保存配置,检查是否报错,重启Nginx
Nginx 的 SSL 证书到此配置完成。
参考
- CentOS 7 Nginx Let’ s Encrypt SSL 证书安装配置
- 开启Https之旅
- nginx+https+http2搭建(二)
- Linux Crontab使用总结