【问题标题】:java using private key with Certificates and Keystore?java使用带有证书和密钥库的私钥?
【发布时间】:2011-01-11 13:21:21
【问题描述】:

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

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

亲切的问候, 马丁

【问题讨论】:

    标签: java certificate keystore pki


    【解决方案1】:

    私钥及其对应的证书存放在 javax.net.ssl.keyStore 中。

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 这几乎无关紧要。他已经有了自己的私钥和证书。
      • 它解释了私钥的来源以及它与证书的关系。至于家伙是新手,有一些解释听起来合乎逻辑。
      • 您的解释不正确。您不是从证书开始,而是从生成私钥开始。而且您对信任库的解释不包括长度 > 2 的证书链。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-20
      • 2014-01-04
      • 2017-02-05
      • 2013-01-02
      • 1970-01-01
      • 2019-10-01
      • 1970-01-01
      相关资源
      最近更新 更多