关于Certbot使用443端口替代80端口完成Let's Encrypt验证的技术咨询
关于Certbot使用443端口替代80端口完成Let's Encrypt验证的技术咨询
嗨,这个问题我之前碰到过好多次,咱们把这事说透哈!
首先明确一点:Let's Encrypt的HTTP-01验证方式确实依赖80端口,但它还有另一种验证方式——TLS-ALPN-01,这个就是专门用443端口的,完美匹配你的需求!
Certbot作为官方推荐的客户端,现在已经完全支持这种验证方式了,不用特意换其他客户端,只要满足几个小条件就行:
- 你的服务器443端口已经对外开放(你说管理员已经搞定这个了,这就没问题)
- 确保你的Certbot版本在v0.31.0以上,老版本可能不支持这个验证方式
- 执行命令的时候指定用TLS-ALPN-01验证:
- 如果你的服务器上没有其他Web服务占用443,直接用独立模式启动Certbot:
certbot certonly --standalone --preferred-challenges tls-alpn-01 - 如果已经有Nginx或Apache这类Web服务在跑443端口,就用对应的Web服务器插件,避免端口冲突:
# Nginx用户 certbot certonly --nginx --preferred-challenges tls-alpn-01 # Apache用户 certbot certonly --apache --preferred-challenges tls-alpn-01
- 如果你的服务器上没有其他Web服务占用443,直接用独立模式启动Certbot:
另外还有几个小提醒:
- 有些防火墙或者安全组可能会对TLS-ALPN协议做限制,如果验证失败,可以检查下443端口是否允许TLS-ALPN流量通行(一般默认是允许的,但遇到问题别忘排查这个)
- 如果你之前用的是HTTP-01验证方式,切换到TLS-ALPN-01后,后续续期也会自动用这个方式,不用再额外配置
备注:内容来源于stack exchange,提问作者Guilherme Richter
相关产品推荐
相关产品推荐

