MTLS 证书被 403.16 拒绝
MTLS certificate is rejected with 403.16
我正在与第 3 方集成,第 3 方在使用 MTLS 连接时提供了客户端证书。
他们使用的证书是由第 3 方给我们的 CSR 生成的。它针对我们的一个 CA 采取行动并返回给第 3 方。我们的一位管理员执行了 CSR,并向我提供了该证书的 public 密钥,以及 CA 的 public 密钥。
CA 的 public 密钥已添加到计算机证书存储区 Trusted Root Certification Authorities
并且根据 docs page for troubleshooting 403.16 的指导,来自 CSR 的 public 密钥已添加到 Intermediate Certification Authorities
商店。
已使用配置编辑器在路径 system.webServer/security/authentication/iisClientCertificateMappingAuthentication
通过 manyToOneMappings
配置 IIS,以根据提供的证书为用户分配 Windows 帐户。证书配置为与通用名称 (CN
) 匹配并且配置正确:
当第 3 方连接时,IIS 日志显示 403.16
错误。
我相信这是正确配置的。我已经使用 makecert.exe
生成了我自己的证书并证明这是有效的。
CAPI2 日志显示以下错误消息,按收到的顺序从第一到最后:
- 指定的网络资源或设备不再可用。
- 吊销功能无法检查吊销,因为吊销服务器离线。
- 证书对于请求的用途无效。
我预计 #1 是尝试检查吊销的结果。
一些问题:
- 未检查吊销是否会导致 403.16?
- 从 CSR 生成的证书表明它的用途是“服务器身份验证”。 “客户端身份验证”是 MTLS 工作的必要目的吗?
提前致谢。
以防其他人遇到这个问题并想知道我们是如何解决这个问题的。
在我们的实例中,前两个错误与证书吊销检查有关。您可以按照说明 here.
禁用证书吊销检查
最后的错误是因为证书没有目的Client Authentication
。该证书似乎需要 Server Authentication
和 Client Authentication
。
一旦这三个问题得到解决end-to-end 沟通就成功了。
我正在与第 3 方集成,第 3 方在使用 MTLS 连接时提供了客户端证书。
他们使用的证书是由第 3 方给我们的 CSR 生成的。它针对我们的一个 CA 采取行动并返回给第 3 方。我们的一位管理员执行了 CSR,并向我提供了该证书的 public 密钥,以及 CA 的 public 密钥。
CA 的 public 密钥已添加到计算机证书存储区 Trusted Root Certification Authorities
并且根据 docs page for troubleshooting 403.16 的指导,来自 CSR 的 public 密钥已添加到 Intermediate Certification Authorities
商店。
已使用配置编辑器在路径 system.webServer/security/authentication/iisClientCertificateMappingAuthentication
通过 manyToOneMappings
配置 IIS,以根据提供的证书为用户分配 Windows 帐户。证书配置为与通用名称 (CN
) 匹配并且配置正确:
当第 3 方连接时,IIS 日志显示 403.16
错误。
我相信这是正确配置的。我已经使用 makecert.exe
生成了我自己的证书并证明这是有效的。
CAPI2 日志显示以下错误消息,按收到的顺序从第一到最后:
- 指定的网络资源或设备不再可用。
- 吊销功能无法检查吊销,因为吊销服务器离线。
- 证书对于请求的用途无效。
我预计 #1 是尝试检查吊销的结果。
一些问题:
- 未检查吊销是否会导致 403.16?
- 从 CSR 生成的证书表明它的用途是“服务器身份验证”。 “客户端身份验证”是 MTLS 工作的必要目的吗?
提前致谢。
以防其他人遇到这个问题并想知道我们是如何解决这个问题的。
在我们的实例中,前两个错误与证书吊销检查有关。您可以按照说明 here.
禁用证书吊销检查最后的错误是因为证书没有目的Client Authentication
。该证书似乎需要 Server Authentication
和 Client Authentication
。
一旦这三个问题得到解决end-to-end 沟通就成功了。