Сторонний сервис доступен по протоколу https, так как же java-приложение может подключиться к этому сервису?
Хранилище доверия и Хранилище ключей
В Java есть два места для сохранения сертификата: truststore и хранилище ключей
Хранилище доверия – для клиента и открытого ключа Хранилище ключей – для закрытого ключа
В нашей задаче нам нужен доверенный магазин
Инструменты
Для SSL-сертификата используйте такие инструменты, как openssl и инструмент для ключей из jdk
Пример
Прежде всего загрузите сертификат от стороннего сервиса.
sudo rm -f thirdPartyCert.pem && sudo echo -n | openssl s_client -showcerts -connect third-party-service:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > thirdPartyCert.pem
Копировать текущий доверенный магазин
cp $JAVA_HOME/lib/security/cacerts currentCacerts
Импортируйте новый сертификат в хранилище доверия
keytool -import -trustcacerts -keystore "currentCacerts" -alias third-party-service -file "thirdPartyCert.pem" -storepass changeit
Проверить сертификат
keytool -list -v -keystore currentCacerts -alias third-party-service -storepass changeit
Используйте эту опцию для добавления сертификата при запуске вашего приложения
-Djavax.net.ssl.trustStore=mySuperCacerts
Идеально!
Оригинал: “https://dev.to/lbatters/ssl-certificate-for-java-application-5a0o”