按照这里的说明重新创建了之前错误创建的证书。现在服务器端显示
服务器是ClassFileServer.java,相应的客户端是SSLSocketClientWithClientAuth.java。
有没有什么提示可以让两端玩得愉快一点,需要注意的是我正在使用本地主机,因此我认为密码能力是相同的。
更新: 以下是我用来生成文件的步骤,可能会混淆密钥和信任存储库:
在服务器上(按照这个指南):
javax.net.ssl.SSLHandshakeException: no cipher suites in common
,客户端显示javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
。与此问题不同。服务器是ClassFileServer.java,相应的客户端是SSLSocketClientWithClientAuth.java。
有没有什么提示可以让两端玩得愉快一点,需要注意的是我正在使用本地主机,因此我认为密码能力是相同的。
更新: 以下是我用来生成文件的步骤,可能会混淆密钥和信任存储库:
在服务器上(按照这个指南):
$ keytool -genkey -alias serverkey -keyalg RSA -keypass p@ssw0rd
-storepass p@ssw0rd -keystore keystore.jks
$ keytool -export -alias serverkey -storepass p@ssw0rd -file
server.cer -keystore keystore.jks
$ keytool -import -v -trustcacerts -alias clientkey -file
../client/client.cer -keystore cacerts.jks -keypass p@ssw0rd
-storepass p@ssw0rd
在客户端(按照这个指南):
$ keytool -genkey -alias clientkey -keyalg RSA -keypass changeit
-storepass changeit -keystore keystore.jks
$ keytool -export -alias clientkey -storepass changeit -file
client.cer -keystore keystore.jks
$ keytool -import -v -trustcacerts -alias serverkey -file
../server/server.cer -keystore cacerts.jks -keypass changeit
-storepass changeit
由于调试超过了此网站的正文限制,不得不使用其他媒介。
客户端调试错误: http://pastebin.com/mHCmEqAk
服务器调试错误: http://pastebin.com/YZbh7H8f