最后更新:Feb 7, 2020 | 所有文档

Let’s Encrypt既支持在IPv6环境下使用ACME客户端访问ACME API,也支持在验证域名控制权时进行的DNS查找和HTTP请求。

域名验证

当对同时具有IPv4和IPv6地址的域发出出站域验证请求时(例如,AAAAA记录),Let’s Encrypt将始终用IPv6地址进行初始连接。 如果IPv6连接在网络级别失败(例如超时),并且有可用的IPv4地址,则我们将使用其中一个IPv4地址重试该请求。

IPV6地址错误

有些时候,域名所有者不会知道其域名的AAAA记录。 如果AAAA记录中的IPv6地址不正确,将影响域验证过程。

通常情况下,IPv6地址将与运行ACME客户端的IPv4地址不在同一服务器。 由于ACME客户端仅将IPv4服务器配置为响应质询,因此在使用IPv6服务器时,域名验证将失败。

在大多数情况下,正确的解决方法是更新IPv6地址以指向运行ACME客户端的服务器。 如果该域名不打算使用IPv6,则删除AAAA记录。 Let’s Encrypt没有办法强制使用IPv4记录验证域名所有权,您必须解决错误的配置问题。

IPv6至IPv4重试

IPv6到IPv4重试仅在连接超时时发生,而不在其他类型的错误时发生。

例如,在上面的”常见错误”方案中,如果有网络服务器正在侦听IPv6地址但是未准备好应对ACME挑战,则该重试将不会发生。 在这种情况下,访问IPv6地址将不会有连接超时,并且质询将失败并不再重试,因为服务器连接正常但返回了错误的信息。

为了简化我们的CA软件,我们仅在验证”http-01”挑战时才对第一个请求执行IPv6到IPv4重试。 如果您使用重定向,则重定向将不会得到重试处理。

例如,如果该域名的AAAA记录总是超时,并且网络服务器的A记录从HTTP重定向到HTTPS,则IPv6将无法正常倒退至IPv4。 对该域的第一个请求将正确的退回IPv4, 从而接收到从HTTP至HTTPS的重定向, 后续请求将仍旧优先使用IPv6地址,但是将访问超时并不会倒退会IPv4。您可以通过解决IPv6配置错误或删除对ACME HTTP-01请求的重定向来解决这种情况。

寻求帮助

如果您需要帮助找到并解决与IPv6相关的问题,请前往我们的社区论坛