Соединение SSL от клиента Java

Я создаю клиентскую программу Java, которая будет отправлять уязвимую информацию на сервер Tomcat. Таким образом, я должен использовать Соединение SSL, таким образом, информация будет зашифрована.

Я должен использовать самоподписанный недоверяемый сертификат, но проблемы наличия, устанавливающие связь от клиента Java.

Я имею успешно Tomcat 5.5 установки для использования SSL и протестировал его через Firefox, который отображает предупреждение самоподписанного сертификата.

Я следовал за установкой Tomcat 5.5 SSL, и они упомянули для создания keystore:

keytool -genkey -alias tomcat -keyalg RSA

Затем я сделал экспорт вышеупомянутого:

keytool -export -keystore .keystore -alias tomcat -file localhost.cer

Затем я сделал импорт вышеупомянутого сертификата в клиентскую машину:

keytool -import -alias tomcat -file localhost.cer -keystore "C:\Program Files"\Java\jdk1.6.0_17\jre\lib\security\cacerts"

Но когда рабочий клиент я добираюсь:

Исключение в потоке "основной" javax.net.ssl. SSLHandshakeException: sun.security.validator. ValidatorException: здание пути PKIX перестало работать: sun.security.provider.certpath. SunCertPathBuilderException: не мог найти действительную сертификацию соединяют каналом к требуемой цели

Это - клиентский код:

URL url = new URL("https://localhost:8443");
HttpsURLConnection conn = (HttpsURLConnection)url.openConnection();
conn.setSSLSocketFactory(sslsocketfactory);
InputStream inputstream = conn.getInputStream();

Теперь я только что начал играть с этими сертификатами сегодня, и я плохо знаком с keystores, поэтому быть терпеливым.

Кто-то может объяснить, как экспортировать и импортировать сертификат, созданный в Tomcat к клиентской машине?

Спасибо.

6
задан Donal Fellows 30 March 2011 в 09:48
поделиться

2 ответа

У Atlassian есть хорошие инструкции о том, как это исправить.

http://confluence.atlassian.com/display/JIRA/Connecting+to+SSL+services

Другой подход - установить менее жестокие валидаторы сертификатов, но это следует делать только в крайнем случае.

1
ответ дан 17 December 2019 в 22:12
поделиться

Используйте Apache HTTP Cleint jar и следуйте этому SSL Guide.

EasySSLProtocolSocketFactory можно использовать для создания SSL-соединений, позволяющих целевому серверу аутентифицироваться с помощью самоподписанного сертификата.

0
ответ дан 17 December 2019 в 22:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: