Java 作为SSL握手的一部分提供证书和密钥

Java 作为SSL握手的一部分提供证书和密钥,java,ssl,mutual-authentication,Java,Ssl,Mutual Authentication,我有一个Java8,它将web请求发送到需要相互身份验证的服务器。我可以使用curl命令连接并传递以下参数 --cacert ./cert.pem --cert server.crt --key server.key 我如何处理这些crt pem和密钥文件以允许JVM在所有传出请求中使用它们?对于像我这样有问题的人 PEM进入信任商店 crt和key文件组合成p12文件,如下所示: openssl pkcs12 -export -in server.crt -inkey server.key

我有一个Java8,它将web请求发送到需要相互身份验证的服务器。我可以使用curl命令连接并传递以下参数

--cacert ./cert.pem --cert server.crt --key server.key

我如何处理这些crt pem和密钥文件以允许JVM在所有传出请求中使用它们?

对于像我这样有问题的人

  • PEM进入信任商店

  • crt和key文件组合成p12文件,如下所示:

    openssl pkcs12 -export -in server.crt -inkey server.key -name [host] -out server.p12
    
  • 将p12安装到密钥库中

    keytool -importkeystore -destkeystore keystore.jks -srckeystore server.p12 -srcstoretype PKCS12
    

  • 请参阅JSSE参考指南。另外,您也可以直接使用.p12文件作为密钥库,只要指定
    javax.net.ssl.keyStoreType=PKCS12
    或其他名称。