繁体   English   中英

Java的证书和密钥库使用私钥?

[英]java using private key with Certificates and Keystore?

我有一个使用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!");. 

我必须在哪里放置要由程序读取的私钥。 我是公共/专用密钥加密的新手,因此将不胜感激。

亲切的问候,Mateen

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

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

这些属性指向证书,而间接指向密钥。 因此,首先您必须获取证书并将其放入密钥库。

“ 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进程可以访问它们即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM