Nginx使用Certbot配置Let's Encrypt域名https解决方案
Posted 雨晨
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx使用Certbot配置Let's Encrypt域名https解决方案相关的知识,希望对你有一定的参考价值。
第一步:安装certbot工具
yum install -y epel-release
yum install -y certbot
第二步:使用certbot命令初次申请证书
>单域名配置
certbot certonly --webroot -w /usr/local/vcens/nginx-1.13.6/html/ -d api.vg.vcns.cn -m vechar@qq.com --agree-tos
格式:
>多域名配置
certbot certonly --webroot -w /usr/local/vcens/nginx-1.13.6/html/ -d api.vg.vcns.cn -w /usr/local/vcens/nginx-1.13.6/html/ -d api.vp.vcns.cn -w /usr/local/vcens/nginx-1.13.6/html/ -d qr.vcns.cn -m vechar@qq.com --agree-tos
格式:
>说明:
由于目前Let's Encrypt不支持域名泛解析,所以需要单独配置每个域名,自然需要逐一验证。填写网站根目录的目的在于Let's Encrypt验证你域名及服务的所有权,会在根目录随机写入文件,然后验证。
我这里多个网站使用的Springboot的jar方式运行,网站根目录没有,所以将所有域名的转发都取消,然后访问每个域名都会跳转到Nginx默认首页。然后把Nginx根目录作为网站进行验证,故出现了以上多域名配置中我配置的网站目录相同。
当然如果你的网站都是相互独立,方便验证根目录,Nginx可以不用修改,在多域名配置中填入你对应的域名及网站根目录,然后继续操作即可。
第三步:申请证书成功提示
第四步:配置Nginx
>恢复各个网站的访问转发
vim nginx.conf
>配置http强制跳转到https(非必需)
第五步:配置SSL
>生成Perfect Forward Security(PFS)键值
>配置Nginx
第六步:配置完成
>重新加载Nginx配置
在Nginx根目录执行命令:
./nginx -s reload
如果有错误发生,请检查配置
>测试
在浏览器输入对应站点域名的http请求会自动转发到https
http://api.vg.vcns.cn -> http://apvg.i.vcns.cn
第七步:Let's Encrypt自动续期
>手动续期
Let's Encrypt的有效期为90天,过期需要重签 命令:
certbot renew --dry-run
>自动续期 使用Crontab
Crontab添加定时任务(每月25号3时重新请求证书):
00 03 25 * * /usr/bin/certbot renew --quiet
重启 Nginx
这里可以把定时请求证书和重启Nginx放在一个任务中,真正做到自动。
第八步:说明
在网络上了解到,在重新请求证书的时候要求网站能打开,不清楚是否需要再次验证根目录,后期测试将会补充。但是单域名或独立网站根目录的网站不受此影响,可能我自己的方案需调整。
完美:
以上是关于Nginx使用Certbot配置Let's Encrypt域名https解决方案的主要内容,如果未能解决你的问题,请参考以下文章
Nginx 部署的虚拟主机如何使用 Let's Encrypt 来进行加密 https
为Nginx申请和使用Let‘s Encrypt的SSL免费证书
为Nginx申请和使用Let‘s Encrypt的SSL免费证书
let's encrypt生成免费https证书 ubuntu+tomcat+nginx+let's encrypt