Certbot 让加密在与 443 不同的端口上

Cap*_*ack 17 ssl-certificate apache-2.4 lets-encrypt certbot

我想在 443 以外的不同端口上为网络服务器设置 certbot。运行时出现以下错误

certbot --apache -d <sub>.<domain>.<ext>
Run Code Online (Sandbox Code Playgroud)

授权程序失败。sub.domain.ext (tls-sni-01): urn:acme:error:connection :: 服务器无法连接到客户端以验证域 :: 无法连接到 external_ip:443 以进行 TLS-SNI-01 质询

在这个错误之后,我阅读了手册页,在那里我发现了这个:

--tls-sni-01-port TLS_SNI_01_PORT 执行 tls-sni-01 质询的端口号。测试模式下的 Boulder 默认为 5001。(默认值:443)

然后我尝试了以下方法来纠正这个错误:

certbot --apache --tls-sni-01-port 14831 -d <sub>.<domain>.<ext>
Run Code Online (Sandbox Code Playgroud)

添加 tls-sni-01-port 后,我​​得到了同样的错误。

是否可以使用不同的端口安装证书,或者我做错了什么?

Orp*_*ans 11

根据:https : //community.letsencrypt.org/t/how-to-specify-a-port-different-from-443-for-the-dvsni-challenge/12753/4

这对于 certbot 是不可能的。您应该在这里查看其他实现方法:https : //community.letsencrypt.org/t/list-of-client-implementations/2103

  • Certbots FAQ 好像另有说法?https://certbot.eff.org/faq/#can-i-issue-a-certificate-if-my-webserver-doesn-t-listen-on-port-80 (2认同)

小智 5

如果它类似于我在站点上的服务器,其中我将公共 ip 端口 80 和 443 转发到专用 ip 端口 8080 和 8443,您可以这样做:certbot certonly --manual

这将要求您在特定 URL 中提供哈希值,通过在您的根网络服务器目录中创建一个包含请求内容的文件来轻松完成,即 http://your.site.com/178412ufhjakjkaslkasflalifalafllkdflkjf和挑战是 adsjaskldlkajsdlkasdlakjsldjalskdasdada

所以你创建/var/www/html/178412ufhjakjkaslkasflalifalafllkdflkjf,它的内容应该是adsjaskldlkajsdlkasdlakjsldjalskdasdada

希望能帮助到你