SSL 客户端 (Java) 未在双向 SSL 握手中将证书发送回服务器

SSL client (Java) is not sending a certificate back to the server in two-way SSL handshake

我们正在尝试使用 https 协议访问 IIS 服务器 上托管的 restful Web 服务资源。

当我们禁用 TWO WAY SSL Auth(禁用客户端证书的服务器端验证)时,一切正常。

当 IIS 实施 TWO WAY SSL(启用客户端证书的服务器端验证)时,我们得到以下异常:

403 - Forbidden: Access is denied.

您无权使用您提供的凭据查看此目录或页面。 我们正在使用 java 1.8 更新 102、IIS 服务器 7.5 和 TLS 1.2 for ssl

详细问题请打开下方link:

For details SSL Debug log, certificates, client program

如果有人帮助我们,那将是很大的帮助。

谢谢!

在 SSL 日志中看到这个警告:

no suitable certificate found - continuing without client authentication

您的服务器正在发送已接受的 CA 列表以请求客户端证书,但您的客户端找不到合适的证书。看来您的密钥库具有正确的证书。确保您的证书正确,例如将其安装在浏览器中并导航到受保护的资源

可能是您的 Java 客户端的配置问题。请仔细阅读HttpClientBuilder文档

System properties will be taken into account when configuring the default implementations when useSystemProperties() method is called prior to calling build().

您没有打电话给 useSystemProperties()

另请参阅可能会影响您的错误报告https://issues.apache.org/jira/plugins/servlet/mobile#issue/HTTPCLIENT-1477