Следовал инструкциям здесь и воссоздал сертификаты, которые я ранее неправильно создал. Что-то изменилось, поскольку теперь я вижу javax.net.ssl.SSLHandshakeException: no cipher suites in common
на сервере и javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
на клиенте. Вместо ошибок этот вопрос
Сервер: ClassFileServer.java и соответствующий клиент SSLSocketClientWithClientAuth.java
Любые советы по правильной игре двух концов, обратите внимание, что я использую localhost, поэтому я предполагаю, что возможности шифра одинаковы.
Обновление:
Вот шаги, которые я использовал для генерации файлов, возможно, я путаю ключ и хранилище доверенных сертификатов .:
На сервере (далее это руководство):
$ 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