Centos7利用Certbot部署和更新Nginx下的SSL证书

## 部署环境 Centos 7, Nginx 1.19

# Certbot&Nginx部署ssl证书

1、安装certbot

sudo yum install epel-release;

sudo yum install certbot;

certbot --version

如果有问题需要调整环境

sudo pip uninstall urllib3

sudo pip install urllib3

sudo easy_install urllib3==1.21.1

sudo pip install --upgrade --force-reinstall 'requests==2.6.0'

2、修改 Nginx 配置

新增一个server模块或者已有的模块中增加location:

server {

    listen 80;

    server_name your.domain.com; #这里填你要验证的域名

    location ^~ /.well-known/acme-challenge/ {

        default_type "text/plain";

        root conf/html/; #这里需要与后文 --webroot -w 后面配置的路径一致

        }

    }

重启

Nginx: `service nginx reload`或者`nginx -s reload`

3、生成证书

`certbot certonly --webroot -w conf/html/ -d your.domain.com`

证书生成后位于`/etc/letsencrypt`目录

注意:-w后面的路径需要和Nginx配置中的文件路径一致

4、配置ssl

Nginx配置文件中可以对443端口增加ssl证书:

ssl_certificate /etc/letsencrypt/live/your.domain.com/fullchain.pem;

ssl_certificate_key /etc/letsencrypt/live/your.domain.com/privkey.pem;

5、重新加载nginx

nginx -s reload //此时https证书已经被加载到对应的网站上。

证书颁布者为 R, 有效期为当日开始的3个月。

Centos7利用Certbot部署和更新Nginx下的SSL证书


 

# 自动更新ssl证书

- 模拟证书更新:

`certbot renew --dry-run` //如果命令指令成功则可增加自动更新定时任务

- 强制更新证书:

certbot renew --force-renewal //强制更新未到期证书

- 添加自动更新定时任务:因为证书有效期只有3个月,推荐每周或者每月执行一次更新命令。

如果证书有效期还有一个月以上,执行命令后会提示无需更新。

crontab -e 或者 vi /etc/crontab

#每周日凌晨 2点执行renew任务,随后3点重新加载nginx

0 2 * * 0 /usr/bin/certbot renew >> /etc/letsencrypt/log/certbot-renew.log

0 3 * * 0 /usr/local/nginx/sbin/nginx -s reload >> /etc/letsencrypt/log/nginx-reload.log

# Certbot部署常见问题参考

https://blog.csdn.net/mxw2552261/article/details/79730757

https://blog.csdn.net/w345731923/article/details/105243372

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值