似乎由于某种原因,使用 LetsEncrypt 生成的证书不会由最新的 Synology DSM 自动更新。
我尝试了 CLI,但失败了
sudo syno-letsencrypt renew-all -v
DEBUG: [syno.example.com] is not a subdomain of [my-syno.synology.me]
DEBUG: DDNS Curl: [https://ddns.synology.com/main.php?_=letsencrypt%2Fdelete&hostname=syno.example.com&myds_id=696423&auth_key=...&serial=1590MHN443201&txt=]
DEBUG: GET Request: https://ddns.synology.com/main.php?_=letsencrypt%2Fdelete&hostname=syno.example.com&myds_id=696423&auth_key=...&serial=1590MHN443201&txt=
DEBUG: Dns01 challenge: Teardown [{"code":"badparam"}].
DEBUG: DNS challenge failed, reason: { "error": 203, "msg": "Challenge setup is failed.", "file": "client.cpp:278"}
DEBUG: Normal challenge failed, reason: { "error": 107, "msg": "syno.example.com: Could not connect to syno.example.com", "file": "client.cpp:315"}
DEBUG: failed to open port 80.
DEBUG: close port 80.
DEBUG: Failed to renew /usr/syno/etc/certificate/_archive/8mSVmw/. { "error": 101, "msg": "failed to open port 80.", "file": "client.cpp:472"}
需要注意的是,我检查了一下,“syno.example.com”的 80 端口是否可以从外部访问,并且正在加载 Web 站。
我甚至尝试在运行更新命令之前停止 Web 站,但似乎对更新命令的执行没有影响。(/usr/syno/bin/synopkg stop WebStation
)。
有趣的是,一旦我停止 Web Station,Synology 就不会不响应端口 80,而是决定将其重定向到端口 5000/5001。
答案1
我在更新运行 DSM 6.1.5-15254 的证书时遇到了问题,不过可能有所不同。由于目前还没有一个答案,所以添加了一些注释 - 这对您可能有帮助,也可能没有帮助 - 但也许会给您一些想法。
因此,几个网站提到,通过 CLI 更新时,您不需要打开端口 80/443。在我的日志中,我failed to open port 80
几次收到“”,但仍然可以更新我的证书。请注意,我做打开端口 80 后,<wan-ip>:80
我看到“Web Station 已启用。要完成您的网站设置,...”页面。
您可以像这样查看日志:
sudo grep letsencrypt /var/log/messages
尝试更新您的特定网站(而不是全部)。请注意,我已经运行了网络服务器(在运行以下命令之前我没有停止它)。
sudo syno-letsencrypt new-cert -d syno.example.com -m [email protected] -v
(尝试-vv
)获取更多详细信息。
如果输出中出现“ DEBUG: save to files
”行,则检查证书在 DSM 中是否有效。如果仍然无效,则通过 DSM 下载证书并将其与调试输出中“cert_path”后面显示的路径进行比较(最后一行实际上应该显示“success” - 但在笔者的情况下并非如此)。
如果证书不匹配,则可能是下载了但未更新 synology 正在使用的“副本”。要解决此问题,请使用 DSM,选择“添加新证书”,然后选择“导入”,并选择“cert_path”中显示的 3 个文件。单击“确定”,synology 将重新启动“WebStation”(可能只需重新启动 Web 服务器就足够了)。
我有一个子域名 aaa.mydomain.com,但系统不想为它生成证书。最后,我从 Synology DSM 中删除了该子域名的证书,只保留了主域名www.mydomain.com- 确实有效。
注意:证书请求数量限制为 20 个 - 超过此限制,我们将加密阻止您一周。