Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Curl cacert与Java HttpClient等效_Java_Ssl_Httpclient_Keytool_Jks - Fatal编程技术网

Curl cacert与Java HttpClient等效

Curl cacert与Java HttpClient等效,java,ssl,httpclient,keytool,jks,Java,Ssl,Httpclient,Keytool,Jks,我想知道我是否能够像下面的命令一样使用curl建立连接 curl——cacert some.pem 如何将其转换为httpclient代码?我知道我需要转换pem文件并创建一个新的密钥库,等等。但是所有这些openssl、keytool命令、密钥库、信任库都让我感到困惑,我不知道该使用哪一个,以及使用的顺序。您需要从pem文件创建一个密钥库(将用作信任库)。这可以按如下方式进行 keytool -import -file cacert.pem -alias myca -keystore trus

我想知道我是否能够像下面的命令一样使用curl建立连接

curl——cacert some.pem


如何将其转换为httpclient代码?我知道我需要转换pem文件并创建一个新的密钥库,等等。但是所有这些openssl、keytool命令、密钥库、信任库都让我感到困惑,我不知道该使用哪一个,以及使用的顺序。

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

keytool -import -file cacert.pem -alias myca -keystore truststore.jks
然后需要将此密钥库用作信任库

如果您希望仅针对特定连接执行此操作,则应遵循以下步骤

如果要对应用程序中的所有连接(或至少是那些不更改默认值的连接)执行此操作,可以使用
javax.net.ssl.trustStore
(及相关)系统属性(请参阅)。如果要对整个应用程序执行此操作,问题在于不会包括默认的受信任CA。解决这个问题的一个简单方法是制作一份与JRE捆绑在一起的
cacerts
文件的副本,并将其用作
truststore.jks
的起点

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

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