更新 ssl 证书时痛苦,求推荐比 nginx 好用的反向代理服务

2021-03-03 10:00:28 +08:00
 zealinux

现在有 100+个二级域名, 然后有 nginx 服务有 10+台,

现在的做法是,上传 ssl 泛域名 ssl 证书到 10+台机器上, 然后更新 100+个配置文件。

有点痛苦

有没有什么好的方法,只要在 nginx.conf导入一次就行。 然后各个 conf.d 目录下的配置文件引用这个变量就行。

这样我以后升级,就只要改 10+个 nginx.conf 就行了。这样就舒服多了。

或者有没有其他更好的反向代理服务推荐?

最好是有webui的, 这样不需要登陆到各个机器上编辑文件。

4970 次点击
所在节点    NGINX
31 条回复
dongtingyue
2021-03-03 10:02:56 +08:00
为啥要更新配置文件?不是只要更新证书就可以了么
matolv
2021-03-03 10:03:57 +08:00
rsycn 把证书覆盖掉就行了,不需要其他操作
zengxs
2021-03-03 10:04:00 +08:00
Nginx 有个 include 指令就是用来干这个的

Debian/Ubuntu 的 Nginx 配置中默认有一个 snippet 目录,就是用来存放一些通用配置片段的,然后在其他配置文件中 include 就行了
Slartibartfast
2021-03-03 10:04:40 +08:00
写个脚本就行了
zengxs
2021-03-03 10:05:34 +08:00
#1 确实,只要更新证书文件就行了,完全不需要更新配置,刚刚都没反应过来 😂
Love4Taylor
2021-03-03 10:09:00 +08:00
caddy ?
imdong
2021-03-03 10:09:38 +08:00
写个脚本,定时执行,从特定地址下载证书并解压到特定目录.

然后重启 nginx,

现在,你甚至都不需要登陆到对应服务器,也不用改 nginx 了.

当然,更换证书只要文件名相同也不需要修改配置文件吧?

简单代码如下(盲写 未测试)

cron 0 0 1 * *

====

wget https://xxx.com/ca.tar.gz -O /tmp/ca.tar.gz

tar -zxf /tmp/ca.tar.gz -C /etc/nginx/ca

nginx -s reload
hxndg
2021-03-03 10:12:14 +08:00
我司多机器组件 ha 的时候是 ha 有个同步脚本
用的 rsync,是从本机登录到目标机器上,然后执行从本机到目标机器的拷贝
写个脚本就成。
CoreJa
2021-03-03 10:27:24 +08:00
更新证书+reload nginx 的事情,为啥要改 nginx 配置?
noahzh
2021-03-03 10:35:04 +08:00
推荐使用 traefik.
xuanbg
2021-03-03 10:35:19 +08:00
买个通配符证书,失效只需要更新几个证书文件就行了
xuanbg
2021-03-03 10:36:25 +08:00
为啥要更新 conf ?替换 10+服务器上面的证书文件不就好了吗?
xiwangzishi
2021-03-03 10:44:22 +08:00
http://www.confd.io/ 试一试这个
paranoia
2021-03-03 10:50:39 +08:00
webui? gitee 上有个 nginxWebUI,我这发不了链接,楼主可以去搜搜看
saytesnake
2021-03-03 10:56:07 +08:00
...include 是干嘛的...不就是做这个的么
d0m2o08
2021-03-03 11:02:07 +08:00
这么多机器不试试 ansible 一把梭么?
guxingke
2021-03-03 11:28:26 +08:00
conf 还是要更新的,证书名字最好能体现一些信息,比如过期时间之类的,方便校验。
配置改完之后的发布和 reload,建议配合 ansible 来做 10+ 个实例很快的
eason1874
2021-03-03 11:29:56 +08:00
什么配置都不用动,证书和密钥文件名不变,rsync 直接覆盖同步过去,然后 systemctl reload nginx 就行了
tinyRat
2021-03-03 11:33:09 +08:00
caddy?
eason1874
2021-03-03 11:35:16 +08:00
如果证书文件名一定要变,就把这两行独立出来一个文件:

ssl_certificate /etc/nginx/ssl/domain.crt;
ssl_certificate_key /etc/nginx/ssl/domain.key;

比如命名成 ssl_cert.conf 放在 ssl 目录,然后其他配置文件应该填这两行的地方改成:

include /etc/nginx/ssl/ssl_cert.conf;

然后每次变更证书,就更新这个文件,然后 reload nginx

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/757873

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX