Как использовать cacerts и jks trustore togeser,

#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. @Александр почему вы не приняли этот отличный ответ.