使用 HttpClient 4.0.1 与 x509 证书进行相互身份验证
有人对如何使用 HTTPClient 4.0.1 通过 x509 证书执行客户端身份验证有任何友好的提示吗?
Does anyone have any friendly tips on how to perform client authentication via an x509 certificate using HTTPClient 4.0.1?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这里有一些代码可以帮助您继续。
KeyStore
是包含客户端证书的对象。如果服务器使用自签名证书或未由 JVM 在所包含的 cacerts 文件中识别的 CA 签名的证书,那么您将需要使用TrustStore
。否则,要使用默认的 cacerts 文件,请将null
传递给SSLSockeFactory
作为 truststore 参数。Here is some code to get you going. The
KeyStore
is the object that contains the client certificate. If the server is using a self-signed certificate or a certificate that isn't signed by a CA as recognized by the JVM in the included cacerts file then you will need to use aTrustStore
. Otherwise to use the default cacerts file, pass innull
toSSLSockeFactory
for the truststore argument..另一个解决方案(从另一个示例复制)。我使用相同的密钥库来进行“信任”(trustStore)和身份验证(keyStore)。
Another solution (copied from another example). I've used the same keystore for both 'trusting' (trustStore) and for authenticate myself (keyStore).
我使用了 HttpClient 网站上的示例代码中的以下内容(如果我没记错的话,是自定义 SSL 上下文)。
I used the following from a sample code on HttpClient's website (custom SSL context if I remember correctly).