Java 8 Как убедиться, что наш код проверяет всю цепочку сертификатов? - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть приложение 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 сертификатам с полной цепочкой, то новый Листовой сертификат необходимо будет обновить».

Часть, которая меня смущает, - это «полная цепь».Что это значит?Означает ли это, что вы можете проверить часть цепочки или полную цепочку?

1 Ответ

0 голосов
/ 13 февраля 2019
...