5

I wonder if I am able to make a connection using curl like the following command,

curl --cacert some.pem https://someurl.com/resource

How do I convert this to httpclient code? I understands I need to convert the pem file and create a new keystore, etc. But all these openssl, keytool commands, keystore, truststore confuses me, I don't know which one to use and in which order.

4

1 回答 1

2

您需要从 PEM 文件创建一个密钥库(您将用作信任库)。这可以如下进行。

keytool -import -file cacert.pem -alias myca -keystore truststore.jks

然后,您需要将此密钥库用作信任库。

如果您希望仅针对特定连接执行此操作,则应遵循此答案

如果您想对应用程序中的所有连接(或至少那些不更改默认值的连接)执行此操作,您可以使用javax.net.ssl.trustStore(和相关的)系统属性(请参阅JSSE 参考指南的自定义部分)。如果您想为整个应用程序执行此操作,问题是默认的受信任 CA 将不包括在内。解决此问题的一种简单方法是制作与 JRE 捆绑在一起的文件的副本,cacerts并将其用作truststore.jks.

或者,您可以将证书直接导入到全局cacerts文件中,但这将使该证书默认在此 JRE 上运行的所有应用程序上受信任。

(您还可以在此答案中找到有关密钥库和信任库之间区别的更多信息。)

于 2012-08-20T21:15:44.983 回答