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(非必需)


Nginx使用Certbot配置Let's Encrypt域名https解决方案


第五步:配置SSL



>生成Perfect Forward Security(PFS)键值


Nginx使用Certbot配置Let's Encrypt域名https解决方案


>配置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

centos+nginx申请Let's Encrypt 通配符HTTPS证书

免费SSL证书Let's Encrypt(certbot)安装使用教程