![Apache 容器+子域的 SSL 配置](https://linux22.com/image/766270/Apache%20%E5%AE%B9%E5%99%A8%2B%E5%AD%90%E5%9F%9F%E7%9A%84%20SSL%20%E9%85%8D%E7%BD%AE.png)
一月份我为两个子域名配置并安装了 SSL 证书。之后,我将两个 docker 容器连接到这两个子域名。
在 SSL 更新过程开始之前,该配置的 SSL 一直处于“工作”状态。然后,验证者尝试更新 /.well-known/ 目录中的密钥,但由于现在正在安装容器,因此它尝试在容器内部查找 /.well-known/ 目录。
是否有 Docker 命令或 Apache 配置可以使 SSL certbot 查看主服务器上的 /.well-known/ 目录而不是尝试在容器内找到它?
答案1
假设您在主机上使用 Apache 作为反向代理,您可以使用目录块将请求重定向到 /.well-known/ 目录:
<Directory "/var/www/html/.well-known/">
Require all granted
Options -Indexes -FollowSymLinks
AllowOverride All
</ Directory>
然后,您的 acme-client 应该将挑战放在主机上的 /var/www/html/.well-known/ 中。Certbot可以自动执行此操作,请在链接页面上检查主机操作系统手册。
如果你愿意改用 NGINX,我建议你使用 dockernginx-代理它的acme-companion适用于 Let's Encrypt/ZeroSSL。此组合会自动为您的 docker 容器颁发证书/续订证书。
答案2
我通过断开容器解决了这个问题,然后手动安装了一个 1 年证书。然后我重新连接了容器。
CPanel 有限制,但是它可以起作用。