В Windows самый простой способ - использовать программу portecle .
- Скачайте и установите Portecle.
- Сначала убедитесь, что вы знаете, какой JRE или JDK используется для запуска вашей программы. На 64-битной Windows 7 может быть довольно много JRE. Process Explorer может помочь вам в этом, или вы можете использовать:
System.out.println(System.getProperty("java.home"));
- Скопируйте файл JAVA_HOME \ lib \ security \ cacerts в другую папку.
- В Portecle выберите Файл> Открыть файл хранилища ключей.
- Выберите файл cacerts
- Введите этот пароль: changeit
- Нажмите Инструменты> Импортировать доверенный сертификат
- Найдите файл mycertificate.pem
- Нажмите Импорт
- Нажмите OK для предупреждения о пути доверия.
- Нажмите OK, когда отобразятся сведения о сертификате.
- Нажмите Да, чтобы принять сертификат как доверенный.
- Когда он запрашивает псевдоним, нажмите OK и снова нажмите OK, когда он говорит, что импортировал сертификат.
- Нажмите сохранить. Не забывайте об этом, или изменение отменяется.
- Скопируйте файл cacerts туда, где вы его нашли.
В Linux:
Вы можете скачать сертификат SSL с веб-сервера, который уже использует его, следующим образом:
$ echo -n | openssl s_client -connect www.example.com:443 | \
sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /tmp/examplecert.crt
При желании проверьте информацию сертификата:
$ openssl x509 -in /tmp/examplecert.crt -text
Импортируйте сертификат в хранилище ключей Java cacerts:
$ keytool -import -trustcacerts -keystore /opt/java/jre/lib/security/cacerts \
-storepass changeit -noprompt -alias mycert -file /tmp/examplecert.crt
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider())
совершенно не нужны в первой части. Второй не делает какой-либо проверки подлинности. ПопробуйтеURLConnection
начать с простого . Вы уверены, что вы модифицировалиcacerts
вlib/security
вашей установке JRE? Вы пробовалиtrustmanager
вариант отладки ?