0

我有一个已使用 KeyTool 添加到密钥库的证书。我还获得了用于生产/测试环境的私钥。我了解证书使用的是公钥。我在哪里放置密钥库和私钥以便命令行程序能够读取。以下密钥读取密钥库。

System.setProperty("javax.net.ssl.keyStore", "xxx.ks");
System.setProperty("javax.net.ssl.keyStorePassword", "xxx_4ps!");
System.setProperty("javax.net.ssl.trustStore", "xxx.ks");
System.setProperty("javax.net.ssl.trustStorePassword", "xxx!");. 

我必须将私钥放在哪里才能被程序读取。我是公钥/私钥加密的新手,因此将不胜感激。

亲切的问候,马丁

4

2 回答 2

2

私钥及其对应的证书位于 javax.net.ssl.keyStore 中。

您要信任的证书位于 javax.net.ssl.trustStore 中。通常您没有自己的属性,只需使用 JDK 提供的默认值,在这种情况下您根本不需要指定此属性。

于 2011-01-12T02:56:50.080 回答
1

这些属性指向证书,只是间接指向密钥。因此,首先您必须获得证书并将它们放入密钥库中。

“javax.net.ssl.keyStore”用于带有证书的密钥库,用于识别您的系统。默认情况下,无需任何额外代码,每个密钥库只能使用一个身份证书。要创建证书,您有两种选择 - 一种是创建自签名证书,另一种是创建 CSR 并将其发送给证书颁发机构进行签名。

请参阅 http://download.oracle.com/javase/1.3/docs/tooldocs/win32/keytool.html#selfcertCmdhttp://download.oracle.com/javase/1.3/docs/tooldocs/win32/keytool.html #certreqCmd命令。

创建证书后,将有与之关联的私钥和公钥。

“javax.net.ssl.trustStore”指向带有您信任的证书的密钥库。这意味着您的系统将仅接受来自此密钥库的证书或由来自此密钥库的证书签名的 SSL 连接。可以使用以下命令将这些证书添加到密钥库中:http: //download.oracle.com/javase/1.3/docs/tooldocs/win32/keytool.html#importCmd

您可以将密钥库放在您喜欢的任何地方。只需确保 java 进程可以访问它们。

于 2011-01-11T14:35:53.647 回答