我正在构建一个Java Client-Server应用程序。客户端将通过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,对吧? 但这将是什么?应该在服务器端还是客户端使用?
在服务器端又有一个Keystore只包含证书,但不包含私钥?或者这是如何工作的? :)
提前感谢您的帮助!
答案 0 :(得分:0)
您已经生成了CSR。证书签名请求。所以,你需要有人签名。如果您只想要自签名证书,请使用-selfcert选项。
在服务器端,您需要一个包含私钥和签名证书的密钥库文件,位于相同的别名下。
在客户端,你需要: