У меня есть приложение Spring Boot 1.5, которое устанавливает соединение с некоторыми веб-сервисами.Во всех случаях это соединения TLS 1.2.Я запускаю свое приложение, передавая следующие параметры JVM:
-Djavax.net.ssl.keyStore=${KEYSTORE} \
-Djavax.net.ssl.keyStorePassword=${KEYSTORE_PW} -> password
javax.net.ssl.keyStore - это просто файл jks с одним сертификатом.
Мне нужно ответить на этот вопрос: при настройке соединения TLS, как я могу узнать, проверяю ли я полную цепочку сертификатов?Или просто корневой сертификат?Это зависит только от того CA, который есть в каждом из моих сертификатов, содержащихся в моем хранилище доверенных сертификатов?
Я использую RestTemplate для создания соединений:
ResponseEntity<T> response = restTemplate.exchange(uri, HttpMethod.PUT, requestEntity, T.class);
Мой экземпляр RestTemplate не имеет ничего необычного,вот как я его построил:
RestTemplate restTemplate = new RestTemplate ();
Спасибо всем.
ОБНОВЛЕНИЕ 14 февраля 2019
Я хотел уточнитьчто-то.Я на 100% уверен, что мой код использует TLS 1.2.Если я удалю свои сертификаты из своего хранилища ключей, то все вызовы начнут терпеть неудачу с жалобами на исключения SSL.
Цепочка сертификатов Службы, которую я вызываю, состоит из листового сертификата и промежуточного сертификата.Они сказали, что обновят только листовой сертификат, и сказали следующее:
«Если клиентские системы доверяют выданным VendorX сертификатам с полной цепочкой, то новый Листовой сертификат необходимо будет обновить».
Часть, которая меня смущает, - это «полная цепь».Что это значит?Означает ли это, что вы можете проверить часть цепочки или полную цепочку?