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
    评论
要在CentOS 7服务器上安装和部署Nginx SSL证书,可以按照以下步骤进行操作: 1. 连接到远程服务器: ``` ssh [email protected] ``` 将`username`替换为你的用户名,`192.168.1.24`替换为你的服务器IP地址。 2. 安装Nginx: 如果你的服务器上尚未安装Nginx,请使用以下命令进行安装: ``` sudo yum install nginx ``` 3. 准备SSL证书: 将SSL证书文件和私钥文件上传到服务器。确保证书文件和私钥文件是匹配的,并且命名符合约定(例如`cert.pem`和`key.pem`)。 4. 配置Nginx: 打开Nginx的配置文件(通常是在`/etc/nginx/nginx.conf`或`/etc/nginx/conf.d/default.conf`中),并进行以下配置更改: - 在`http`块中,添加一个新的`server`块来定义HTTPS服务器: ``` server { listen 443 ssl; server_name your-domain.com; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; ... } ``` 将`your-domain.com`替换为你的域名,将`/path/to/cert.pem`和`/path/to/key.pem`替换为SSL证书文件和私钥文件的路径。 - 如果你的应用程序使用了其他Nginx配置(如代理等),请在此`server`块中进行相应的配置更改。 5. 检查配置文件: 运行以下命令检查Nginx配置文件是否正确: ``` sudo nginx -t ``` 6. 启用防火墙规则(如果需要): 如果服务器启用了防火墙(如firewalld或iptables),请确保允许通过HTTPS访问。例如,使用以下命令启用HTTP和HTTPS规则: ``` sudo firewall-cmd --zone=public --add-service=http --permanent sudo firewall-cmd --zone=public --add-service=https --permanent sudo firewall-cmd --reload ``` 7. 启动Nginx服务: 使用以下命令启动Nginx服务: ``` sudo systemctl start nginx ``` 现在,你的Nginx服务器应该已经配置了SSL证书,并且可以通过HTTPS访问。确保你的域名已经指向了服务器的IP地址,并测试访问以验证证书是否正确安装和部署

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值