使用 IP-HTTPS 时,DirectAccess 客户端可能无法使用错误代码0x103、0x2AFC或0x2AF9连接到 DirectAccess 服务器

本文提供有关修复使用 IP-HTTPS 将 DirectAccess 客户端连接到 DirectAccess 服务器时出现的错误0x103、0x2AFC或0x2AF9的帮助。

原始 KB 数: 2980635

现象

DirectAccess 客户端可能无法通过安全超文本传输协议(IP-HTTPS)连接使用 Internet 协议连接到 DirectAccess 服务器。

运行 netsh 接口 http show interface 命令时,输出如下所示:

错误:0x103、0x2AFC或0x2AF9

转换为:

无法连接到 IP-HTTPS 接口。

原因

Error: 0x103  
Role: Client  
URL: `https://da.contoso.com/IPHTTPS`  
Last Error Code: 0x103  
Interface Status: No usable certificate found  
0x103 translates to:  
ERROR_NO_MORE_ITEMS  
# No more data is available.  
(This means no matching certificates were found)

在以下方案中出现此错误:

  • IP-HTTPS URL 与提供的证书不匹配。
  • IP-HTTPS 证书在“使用者”字段中具有其他不需要的信息。
  • IP-HTTPS 证书在“使用者”字段中具有正确的名称,但使用者可选名称(SAN)中的值不正确。
Error: 0x2AFC  
Role: Client  
URL: `https://da.contoso.com/IPHTTPS`  
Last Error Code: 0x2AFC  
Interface Status: Failed to connect to IPHTTPs server; Waiting to reconnect.  
0x2AFC translates to:  
WSANO_DATA  
# The requested name is valid, but no data of the requested type was found.  
WSANO_DATA  
# Successfully returned a NULL value.  

出现此错误的原因有多种:

  • 代理服务器正在阻止连接。
  • 无法解析 IP-HTTPS 接口 URL 中提到的 IP-HTTPS 服务器(DirectAccess 服务器)的名称。
  • 客户端或服务器端防火墙可能会阻止与 IP-HTTPS 服务器(DirectAccess 服务器)的连接。
  • NAT 设备配置不正确(如果使用后边缘方案)。
  • 所有连接都正常,但服务器未发布 IPv6 前缀,或者服务器端 IP-HTTPS 设置为禁用。
Error: 0x2AF9  
Role: Client  
URL: `https://da.contoso.com/IPHTTPS`  
Last Error Code: 0x2AF9  
Interface Status: Failed to connect to the IPHTTPS server; waiting to reconnect  
0x2AF9 translates to:  
WSAHOST_NOT_FOUND  
# No such host is known.  
WSAHOST_NOT_FOUND  
# Non-NULL value successfully returned.  

出现此错误的原因有多种:

  • 代理正在阻止连接。
  • 无法解析 IP-HTTPS 服务器的名称(DirectAccess 服务器)。
  • 客户端或服务器端防火墙可能会阻止连接。
  • DirectAccess 服务器前面的 NAT 设备配置不正确(如果使用后边缘方案)。
  • 所有连接都正常,但服务器未发布 IPv6 前缀,或者服务器端 IP-HTTPS 设置为禁用。

解决方法

尝试使用端口 443 上的 DirectAccess 服务器的外部 IP 地址或名称通过 telnet 连接到服务器。 如果无法连接,这可能是因为数据包正在网络上的某个位置删除,或者 NAT 规则未在配置 DirectAccess 的外部 NAT 设备上正确创建。

有关详细信息,请参阅以下页面的“规划防火墙要求”部分,Microsoft Technet: 规划 DirectAccess 基础结构
外部名称应可从客户端解析。 尝试 ping IP-HTTPS 站点名称(DirectAccess 服务器公共名称)的名称,并检查名称解析是否成功。 如果名称未解析,请修复名称解析。

注意

我们只是希望将 DirectAccess 服务器的公共名称的名称解析成功解析为 IP 地址,而不是 Ping 命令的实际成功。

如果 telnet 连接成功,请查看网络跟踪。 SSL 握手应该成功。

重置本地系统代理设置。 可以通过在 Internet Explorer 中查看代理设置来操作这些设置。 必须在本地系统上下文下打开 Internet Explorer,而不是使用普通帐户。

DirectAccess 客户端可配置为通过代理服务器(可能会阻止连接)访问 HTTPS 站点。 最新的代理地址缓存在注册表中。 若要查看它们,请在 DirectAccess 客户端上打开注册表编辑器(regedit),然后导航到以下注册表子项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iphlpsvc\Parameters\ProxyMgr

导出 ProxyMgr 注册表子项。 如果不再使用代理服务器,请删除此注册表子项下的所有注册表项,然后重启 DirectAccess 客户端。

详细信息

DirectAccess 连接方法

DirectAccess 客户端使用多种方法连接到 DirectAccess 服务器,这样就可以访问内部资源。 客户端可以选择使用 Teredo、6to4 或 IP-HTTPS 连接到 DirectAccess。 这也取决于 DirectAccess 服务器的配置方式。

当 DirectAccess 客户端具有公共 IPv4 地址时,它将尝试使用 6to4 接口进行连接。 但是,某些 ISP 提供公共 IP 地址的错觉。 他们向最终用户提供的内容是伪公共 IP 地址。 这意味着 DirectAccess 客户端(数据卡或 SIM 连接)收到的 IP 地址可能是来自公共地址空间的 IP,但实际上位于一个或多个 NAT 后面。

当客户端位于 NAT 设备后面时,它将尝试使用 Teredo。 许多企业(如酒店、机场和咖啡店)不允许 Teredo 流量穿过防火墙。 在这种情况下,客户端将故障转移到 IP-HTTPS。 IP-HTTPS 是基于 SSL (TLS) TCP 443 的连接生成的。 SSL 出站流量很可能在所有网络上都允许。

考虑到这一点,IP-HTTPS 已生成,以提供可靠且始终可访问的备份连接。 当其他方法(如 Teredo 或 6to4)失败时,DirectAccess 客户端将使用此客户端。

有关转换技术的详细信息,请参阅 IPv6 转换技术