Как исправить SSL - Нет доступного сертификата - PullRequest
8 голосов
/ 17 декабря 2011

Я хочу установить соединение через сокет SSL сервера, используя следующий код:

int port = 12000;
ServerSocketFactory ssocketFactory = SSLServerSocketFactory.getDefault();
ServerSocket ssocket = ssocketFactory.createServerSocket(port);

// Listen for connections
Socket socket = ssocket.accept();

Я получаю « javax.net.ssl.SSLException: ни один из доступных сертификатов или ключей не соответствует комплектам шифров SSL, которые включены. » при принятии.

Я создал хранилище ключей, которое содержит ключ RSA, используя:

keytool -genkeypair -alias ClubConnectionCert -keyalg RSA -validity 7 -keystore ClubConnectionKeystore

и я запускаю программу со следующими параметрами:

-Djavax.net.ssl.keyStore=ClubConnectionKeystore -Djavax.net.ssl.keyStorePassword=mypassword 

Я пропускаю какой-либо код для чтения в хранилище ключей или как я могу проверить / отладить, что данное хранилище ключей действительно используется?

1 Ответ

7 голосов
/ 17 декабря 2011

Я выполнил ваш код и подтверждаю, что он работает нормально.

Убедитесь, что javax.net.ssl.keyStore указывает точно в ваш файл хранилища ключей.Я положил свой файл хранилища ключей в корень моего проекта.Возможно, попробуйте абсолютный путь к вашему хранилищу ключей.

Убедитесь, что параметры -D установлены как параметры JVM, а не параметры программы (в вашей IDE).

Удачи, вы собираетесь сделатьэто работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...