我使用来自https://github.com/Lone-Coder/letsencrypt-win-simple的Let's Encrypt IIS客户端为服务器生成证书。由于证书只有三个月有效,我希望它能自动续订。
但我需要自动续订证书的服务器只能绑定到https:|| mysubdomain.mydomain.com:443和smtp:|| mysubdomain.mydomain.com:25。 http:|| mysubdomain.mydomain.com:80和ftp:|| mysubdomain.mydomain.com:21指向不同的服务器。
正如您可能已经猜到的那样,在此过程中抛出的错误是“ACME服务器可能无法访问http:|| mysubdomain.mydomain.com:80 / .well-known / acme-challenge / abcdefgh ... XYZ”。
我完全清楚为什么,但我无法修复它,因为http:|| mysubdomain.mydomain.com必须指向其他服务器。如果ACME服务器尝试https:|| mysubdomain.mydomain.com:443 / .well-known / acme-challenge / abcdefgh ... xyz,但忽略任何证书问题,他将成功找到挑战。
我能做些什么,我忽略了哪些功能,这有助于我实现自动续订工作?
答案 0 :(得分:1)
有多种选择:
http-01
将http://example.com/.well-known/acme-challenge/*
重定向到https://example.com/.well-known/acme-challenge/*
,Boulder将很乐意遵循任何此类重定向并忽略所提供的证书。如果您可以访问其他服务器并且可以配置该重定向,那么这是最简单的方法。它是一个永久性的重定向,你不必调整,它每三个月就会很好。
直接使用HTTPS的选项已被删除,原因是某些流行的服务器软件出现安全问题,如果某些其他虚拟主机未定义任何HTTP主机,则会使用定义的第一个主机,这可能导致多个错误的发布 - 用户环境又称共享主机。
tls-sni-01
如果您只想使用端口443
,则可以使用另一种名为tls-sni-01
的质询类型。但我认为还没有支持该挑战类型的Windows客户端。
dns-01
如果您通过简单的API控制DNS,您也可以使用DNS质询,它完全独立于您可以使用的端口。