Как импортировать сертификат в java

Шпаргалка на случай внезапных стектрейсов

Важно! На самом деле лучше цивилизованно поставить корневой сертификат и не заниматься этой фигней. Но если очень надо, то вот…

1. Качаем сертификат хоста

$ openssl s_client -connect somehost-with-ssl:443 > host.crt

(Можно на самом деле не писать в файлик, а работать со стандартным выводом на этом шаге)

На IPv6-only хосте получил сертификат только через

echo -n | gnutls-cli --print-cert -p 443 somehost-with-ssl

2. Заходим в файл host.crt

и удаляем все, что вокруг: -----BEGIN CERTIFICATE----- и -----END CERTIFICATE-----

3. Импортируем в хранилище

$ sudo keytool -import -trustcacerts -alias somehost-with-ssl -file host.crt -keystore /usr/lib/jvm/java-6-oracle/jre/lib/security/cacerts

Путь до JRE указываем правильный. Пароль от keystore по-умолчанию changeit