Java HTTPS 客户端证书身份验证
使用服务器证书进行身份验证时,Java 客户端必须提供以下凭据:
客户端密钥库
客户端密钥库,位于PKCS#12 格式,包含以下内容:
生成密钥库的示例命令:
openssl pkcs12 -export -in client.crt -inkey client.key -out client.p12 -name "Whatever"
客户信任库
JKS 格式的客户端信任库包含确定受信任端点的根或中间 CA 证书。
生成信任库的示例命令:
keytool -genkey -dname "cn=CLIENT" -alias truststorekey -keyalg RSA -keystore ./client-truststore.jks -keypass whatever -storepass whatever keytool -import -keystore ./client-truststore.jks -file myca.crt -alias myca
身份验证过程
当服务器在请求客户端身份验证时TLS 握手,它提供了受信任的 CA 列表。如果客户端证书由这些 CA 之一签名,则将提供该证书进行身份验证。
其他注意事项:
使用 Apache HttpClient
要使用 HttpClient 进行 HTTPS 和客户端身份验证:
-Djavax.net.debug=ssl -Djavax.net.ssl.keyStoreType=pkcs12 -Djavax.net.ssl.keyStore=client.p12 -Djavax.net.ssl.keyStorePassword=whatever -Djavax.net.ssl.trustStoreType=jks -Djavax.net.ssl.trustStore=client-truststore.jks -Djavax.net.ssl.trustStorePassword=whatever
以上是如何配置Java HTTPS客户端证书认证?的详细内容。更多信息请关注PHP中文网其他相关文章!