gpt4 book ai didi

ssl - Nginx 不考虑更新让我们加密证书

转载 作者:太空宇宙 更新时间:2023-11-03 14:32:06 27 4
gpt4 key购买 nike

我有一台服务器在内部端口上运行一些 NodeJs 应用程序(准确地说是 MeteorJs)。我使用 Nginx 来 proxy_pass 以应用程序 URL 为目标的请求。

假设 app_1localhost:3000 上运行,我会将 proxy_pass app1.domain.comlocalhost:3000 然后添加防火墙规则来限制对端口 3000 的访问。

然后我使用 letsencrypt 在 app1.domain.com 的传入连接上添加 SSL。我使用 certbot certonly -w/var/www/app1 -d app1.domain.com 生成证书,然后设置 nginx 配置文件以使用它。

一切正常,直到需要更新证书。

要进行更新,我有以下 cron 作业:

12 6 * * 3 /root/renew.sh

使用以下脚本 /root/renew.sh :

certbot renew 
service nginx reload

我遇到的问题是,过期后,nginx 网络服务器不提供新证书!

所以我添加了以下 cron 作业:

30 6 * * 3 service nginx restart

但它仍然无法刷新证书(这会导致导航器出错,说连接不安全,因为证书过期)。所以我需要手动登录并重新加载nginx。

我的设置有什么问题?

谢谢

最佳答案

您可以在一个 cronjob 行中设置所有内容(修改后的基本设置):

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew --deploy-hook "nginx -t && systemctl restart nginx"

此 cron 作业每天触发两次,以检查证书是否在接下来的 30 天内过期。它不应导致性能问题。

如果它即将过期,那么它会安静地自动更新它而不生成输出并重新启动 NGINX 以应用更改。如果证书没有过期,那么它不会执行任何操作。

注意 --deploy-hook 参数已添加到 2017 年 7 月发布的 certbot 版本 0.17

关于ssl - Nginx 不考虑更新让我们加密证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51798231/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com