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 @qq.com --agree-tos 

格式:

certbot certonly --webroot -w 网站根目录 -d 域名 -m [联系人email地址] --agree-tos

>多域名配置

certbot certonly --webroot -w /usr/local/vcens/nginx-1.13.6/html/ -d api.vxxx.xxxx.cn  -w /usr/local/vcens/nginx-1.13.6/html/ -d api.vxx.xxxx.cn -w /usr/local/vcens/nginx-1.13.6/html/ -d xx.xxxx.cn -m xxxx@qq.com --agree-tos

格式:

certbot certonly --webroot -w 网站根目录1 -d 域名1 -w 网站根目录2 -d 域名2 -m [联系人email地址] --agree-tos

>说明:

由于目前Let's Encrypt不支持域名泛解析,所以需要单独配置每个域名,自然需要逐一验证。填写网站根目录的目的在于Let's Encrypt验证你域名及服务的所有权,会在根目录随机写入文件,然后验证。

我这里多个网站使用的Springboot的jar方式运行,网站根目录没有,所以将所有域名的转发都取消,然后访问每个域名都会跳转到Nginx默认首页。然后把Nginx根目录作为网站进行验证,故出现了以上多域名配置中我配置的网站目录相同。

当然如果你的网站都是相互独立,方便验证根目录,Nginx可以不用修改,在多域名配置中填入你对应的域名及网站根目录,然后继续操作即可。

PS:为了方便找回密码和得到续期提醒,请正确填写您的Eamil地址

第三步:申请证书成功提示

12003909_D6Fj.jpg

第四步:配置Nginx

>恢复各个网站的访问转发

vim nginx.conf

>配置http强制跳转到https(非必需)

12003909_JxGO.jpg

第五步:配置SSL

>生成Perfect Forward Security(PFS)键值

12003909_JQpi.jpg

>配置Nginx

12003909_K0Ed.jpg

第六步:配置完成

>重新加载Nginx配置

在Nginx根目录执行命令:

./nginx -s reload

如果有错误发生,请检查配置

>测试

在浏览器输入对应站点域名的http请求会自动转发到https

http://api.xxxxx.cn -> https://api.xxxxx.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放在一个任务中,真正做到自动。

第八步:说明

        在网络上了解到,在重新请求证书的时候要求网站能打开,不清楚是否需要再次验证根目录,后期测试将会补充。但是单域名或独立网站根目录的网站不受此影响,可能我自己的方案需调整。

完美:

12003909_ZFLO.jpg

 

转载于:https://my.oschina.net/vechar/blog/1605876

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
配置Nginx使用HTTPS使用域名进行访问,您需要执行以下步骤: 1. 获取SSL证书: - 您可以购买SSL证书,或者使用免费的证书颁发机构(如Let's Encrypt)来获取证书。 - 确保您获得了证书文件(通常是以.crt或.pem为扩展名的文件)和私钥文件(通常是以.key为扩展名的文件)。 2. 配置Nginx: - 打开Nginx配置文件(通常是在/etc/nginx/nginx.conf或/etc/nginx/sites-available/default)。 - 在server块中添加以下配置: ``` server { listen 443 ssl; server_name your_domain.com; ssl_certificate /path/to/your_certificate.crt; ssl_certificate_key /path/to/your_private_key.key; location / { # 其他网站配置 } } ``` - 将`your_domain.com`替换为您的域名。 - 将`/path/to/your_certificate.crt`替换为您SSL证书的路径。 - 将`/path/to/your_private_key.key`替换为您的私钥文件的路径。 3. 配置HTTP到HTTPS的重定向(可选): - 如果您希望将所有HTTP请求重定向到HTTPS,可以在HTTP server块中添加以下配置: ``` server { listen 80; server_name your_domain.com; return 301 https://$host$request_uri; } ``` - 将`your_domain.com`替换为您的域名。 4. 重新启动Nginx: - 保存并关闭配置文件。 - 在终端中输入以下命令以重新启动Nginx服务: ``` sudo service nginx restart ``` 现在,您应该可以通过使用您的域名HTTPS访问您的Nginx服务器了。请确保您的域名已正确解析到您的服务器IP地址。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值