mirror of
https://github.com/0xJacky/nginx-ui.git
synced 2026-04-25 08:45:58 +03:00
[GH-ISSUE #182] 容器化部署证书无法自动更新 #1442
Labels
No labels
Q/A
bug
casdoor
dependencies
docker
documentation
duplicate
enhancement
help wanted
invalid
lego
platform:openwrt
platform:windows
pull-request
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/nginx-ui#1442
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @hale177 on GitHub (Nov 4, 2023).
Original GitHub issue: https://github.com/0xJacky/nginx-ui/issues/182
环境: docke-compose 安装
版本: v1.9.9-4
现象:
我有多个站点domain ,证书通过 http-01 或者 dns-01 生成(有两个站点因为解析的内网ip,所有用了 dns-01 方式),但是发现很多证书都已过期或临近快过期并没有自动更新。
然后我进行了 compose stop 和 start 操作并观察了日志发现,启动的时候系统会去进行证书更新操作,但如果碰到第一个域名更新异常,整个更新过程就停止了,不管后续其他域名正常与否 。 日志如下:
问题:
在反复测试N次后,发现了 2 个问题
1,证书逻辑是否需要优化下 ? 某个域名更新报错后 直接跳过,继续进行下一个域名的证书更新(因为测试时正好更新到了采用dns-01方式的内网ip 域名 就报错了,我手工处理后,后面就正常了)
2,通过观察日志发现一定要手工执行 docker-compose stop + start 才会触发证书更新 , 而一直 running 的容器服务永远不会触发证书更新操作 。
@0xJacky commented on GitHub (Nov 6, 2023):
好的,我确认一下
@0xJacky commented on GitHub (Nov 10, 2023):
可以试试更新到 v2.0.0-beta x 的版本,之前这个问题应该已经修复过了
@leic4u commented on GitHub (Nov 10, 2023):
我也是 docker compose 部署,版本v2.0.0-beta 4。
证书列表中有一个配置站点时申请的证书,应该是配置时自动就在证书列表也生成了一条数据。但是这个证书的自动更新是被禁用的,且没有找到手动开启的按钮。
请问下这个自动更新证书,是在到期前才会自动变成启用吗?
@0xJacky commented on GitHub (Nov 11, 2023):
截图个看看,正常是打开之后就会自动生成一条数据,并且他的自动更新也是打开的状态,或者你先删掉这条记录,重新尝试打开Server 里面申请证书的开关看看
@leic4u commented on GitHub (Nov 11, 2023):
昨晚我没有删除证书的时候点了一下申请证书,没有报错,但申请一直卡着的,等了很久无奈只能关机睡觉了。
刚刚我去证书列表看,已经没有证书了,然后我又去申请证书,还是一直卡着的,也无法关闭,只能刷新页面。
另外我尝试新建站点,在申请证书时也会卡住。重启了容器也不行。
@0xJacky commented on GitHub (Nov 11, 2023):
你是不是做了反向代理
@leic4u commented on GitHub (Nov 11, 2023):
现在有2个配置。
配置1:
配置2:
@0xJacky commented on GitHub (Nov 11, 2023):
docker 是直接暴露的 80 和 443 端口到公网ip吗
@0xJacky commented on GitHub (Nov 11, 2023):
这个情况是 Nginx UI 自己的 WebSocket 无法访问,一般是配置问题
@leic4u commented on GitHub (Nov 11, 2023):
下面是 docker compose 的配置,为了用在配置里能用
127.0.0.1和localhost来写配置,所以我是直接用的 host 网络,这个会造成 WebSocket 问题么。我加下 WebSocket 的配置试试。@0xJacky commented on GitHub (Nov 11, 2023):
你可以 F12 看网络请求,他会新建一个 Websocket 链接的,如果连不上,那就会卡主,或者看看 Nginx UI docker 里的 logs 看看有无报错
@leic4u commented on GitHub (Nov 11, 2023):
F12 的网络请求如下:

nginx-ui 日志如下:
@0xJacky commented on GitHub (Nov 11, 2023):
ws 的那个请求的消息可以看看吗,还是说就没有,看 Header 这个 http 请求没有 upgraded 啊
@leic4u commented on GitHub (Nov 11, 2023):
是这个吗?是空的。

@0xJacky commented on GitHub (Nov 11, 2023):
那就还是 websocket 的问题了
@leic4u commented on GitHub (Nov 11, 2023):
这种怎么处理呢?🤣是我的配置问题吗?
@leic4u commented on GitHub (Nov 11, 2023):
之前一直是使用的
ip:443登录 nginx-ui 面板,我发现直接使用ip:9000/ip:80/域名:443登录面板时可以正常颁发证书,就只有ip:443不行。不过有点奇怪,昨天使用
ip:443都还可以正常颁发证书,升级beta-4之后不行了。@hale177 commented on GitHub (Nov 13, 2023):
阿里云ECS,有弹性公网 EIP ,就是直接暴露公网
@hale177 commented on GitHub (Nov 13, 2023):
其实从 1.7.X 一直用到现在1.9.x ,基本证书全靠 手动触发的更新(http-01),定时自动轮转更新机制感觉并没有运转(只在启停的时候会看到证书更新的log,其他时候没见过),好多都是被发现过期了,提醒上去手动更新 。
@0xJacky commented on GitHub (Nov 19, 2023):
等 gocron v2.0.0 发正式版了我重构一次这个部分
@0xJacky commented on GitHub (Nov 28, 2023):
这次应该修好了,是我之前没做好错误处理导致 channel 造成阻塞,这项更新将会在 v2.beta.5 中发布