【问题标题】:Client-Server SSL communication + Self signed certificate客户端-服务器 SSL 通信 + 自签名证书
【发布时间】:2014-06-07 07:33:58
【问题描述】:

我正在构建一个 Java 客户端-服务器应用程序。客户端将通过 SSL 与服务器通信。我想实现客户端需要进行身份验证。我的意思是使用密钥库或其他什么,但这个主题对我来说真的很新。

所以我的问题是,我如何生成客户端和服务器端密钥库(如果这就是它的名称)并对其进行自签名。从这里我可以完成剩下的工作。

我有什么:

keytool -genkeypair -alias test -keystore test.store -storepass StorePass -validity 365 -keyalg RSA -keysize 2048 -dname "CN=TestCompany Ltd., OU=TestCompany Developments, O=TestCompany Ltd., L=MyCity, S=MyState, C=HU" -storetype jks

keytool -keystore test.store -certreq -alias test -keyalg rsa -file test.csr

我想现在我需要对 test.csr 进行自签名,对吗? 但这会是什么?应该用在服务器端还是客户端?

服务器端应该有一个只包含证书而不包含私钥的密钥库?或者这是如何工作的? :)

提前感谢您的帮助!

【问题讨论】:

    标签: ssl certificate keystore keytool jsse


    【解决方案1】:

    您已生成 CSR。证书签名请求。所以,你需要有人签字。如果您只想要一个自签名证书,请使用 -selfcert 选项。

    在服务器端,您需要一个包含私钥和签名证书的密钥库文件,使用相同的别名。

    在客户端顶部,您需要:

    • 包含自签名证书的信任库,如果您这样做,或者
    • 一个包含 CA 证书或其根的信任库,如果您有 CA 签名,并且 Java 已经附带了其中的一个。

    【讨论】:

      猜你喜欢
      • 2010-11-13
      • 2011-06-11
      • 1970-01-01
      • 1970-01-01
      • 2011-02-23
      • 2020-01-11
      • 2015-04-30
      • 1970-01-01
      相关资源
      最近更新 更多