如何解决利用cron定时任务自动更新SSL证书后Nginx重启问题

利用cron定时任务自动更新SSL证书后,用浏览器访问网站,获取到的证书仍然是之前的。原因在于没有对Nginx进行重启。

据说certbot更新完成证书后会自动重启Nginx,但显然经我检测不是这回事儿。

所以我们需要创建一bash脚本,然后定时调用这个脚本。

第01步:创建一个新的脚本文件 renew-certificate.sh

如果Nginx不可以通过Nginx命令重启,那么脚本如下:

内容如下:

bash 复制代码
#!/bin/bash

# 运行 Certbot 更新命令
certbot renew --quiet

# 检查证书是否已更新
if [ $? -eq 0 ]; then
    # 证书已更新,重新加载 Nginx
    sudo /usr/local/nginx/sbin/nginx -s reload
fi

如果Nginx可以通过Nginx命令重启,那么把上面脚本中的:

bash 复制代码
sudo /usr/local/nginx/sbin/nginx -s reload

换成:

bash 复制代码
systemctl reload nginx

第02步:确保脚本具有执行权限

bash 复制代码
chmod +x renew-certificate.sh

或者直接用护卫神面板进行修改。

第03步:修改定时任务,调用脚本

bash 复制代码
sudo crontab -e
bash 复制代码
34 4 * * * /opt/bash_scripts/renew-certificate.sh

Centos上的默认文本编辑器vi的操作方法积累

在上面的任务中,脚本首先运行 certbot renew 命令,然后检查返回的退出码。如果退出码为0(即证书已成功更新【如果是多个证书,只有一个证书更新了,退出码都为0】),则重新加载 Nginx。

这样,你的定时任务将运行脚本,脚本将负责更新证书并重新加载 Nginx。

相关推荐
野熊佩骑43 分钟前
一文读懂Nginx 之 Ubuntu使用apt方式安装Nginx官方最新版本
linux·运维·服务器·nginx·ubuntu·http
TechWayfarer1 小时前
出海APP本地化实战:基于IP归属地API的网关路由与多语言自动切换方案
网络·python·网络协议·tcp/ip
却道天凉_好个秋1 小时前
云中网络:GRE
网络协议·gre
带娃的IT创业者1 小时前
当隐私守护者成为指纹:深度解析 Mullvad 出口 IP 的“反向识别”陷阱
网络·网络协议·tcp/ip·vpn·指纹识别·隐私保护·mullvad
墨着染霜华1 小时前
Windows 启动 Nginx 一闪而过、pid 丢失、logs 目录报错彻底解决
运维·windows·nginx
雪度娃娃1 小时前
Asio——socket的创建和连接
linux·运维·服务器·c++·网络协议
ji_shuke2 小时前
前端请求/authapi/auth/permissions 实际发给后端 /api/auth/permissions 本地和线上配置
运维·前端·nginx
赵成ccc3 小时前
【无标题】
linux·nginx
川石课堂软件测试3 小时前
接口测试常见面试题及答案
python·网络协议·mysql·华为·单元测试·prometheus·harmonyos
minji...3 小时前
Linux 网络基础之传输层TCP(七)确认应答机制,超时重传机制,连接管理机制(三次握手四次挥手),流量控制,滑动窗口,快重传
linux·运维·服务器·网络·网络协议·tcp/ip·http