#java #spring-boot #ssl #jks
#java #весенняя загрузка #ssl #jks
Вопрос:
Как использовать cacerts и jks вместе в одном приложении Spring Boot.
Теперь я использую внешнюю загрузку скриптом cacert при запуске приложения
-Djavax.net.ssl.trustStore="/opt/app/cacerts"
Теперь для работы с другим микросевисом мне нужно настроить другой SSL. Мне был предоставлен файл jks для настройки ssl
Как добавить еще один jks trustore
Ответ №1:
Похоже, что spring boot по умолчанию загружает доверенные сертификаты jdk во время загрузки. Попробуйте запустить свое приложение со следующим аргументом виртуальной машины: -Djavax.net.debug=SSL,keymanager,trustmanager,ssl:handshake
при наличии настройки файла application.properties, как показано ниже
Я пробовал это с базовой настройкой и только настроил свой файл свойств приложения, см. Содержимое ниже.
server:
port: 8443
ssl:
enabled: true
key-store: classpath:identity.jks
key-password: secret
key-store-password: secret
trust-store: classpath:truststore.jks
trust-store-password: secret
client-auth: need
При загрузке моего приложения я вижу в журналах, что spring сначала загружает jdk truststore по умолчанию (cacerts) с 93 доверенными сертификатами и послесловиями, а также загружает запись ключа и другие доверенные сертификаты. Эти две записи получены из моего хранилища ключей и хранилища доверия. Таким образом, вам не нужно программно объединять jdk truststore и свой собственный truststore и предоставлять его spring. Итак, не могли бы вы попытаться удалить свою -Djavax.net.ssl.trustStore="/opt/app/cacerts"
строку и настроить свой файл application.properties со ссылкой только на ваш пользовательский файл jks в качестве хранилища доверия?
Комментарии:
1. @Александр почему вы не приняли этот отличный ответ.