Меня довольно смущает назначение файла trustore на сервере tomcat.
Т.е. использование truststoreFile
параметр при настройке соединителя с включенным TLS.
Согласно документам tomcat:
TruststoreFile
Файл доверенного хранилища, используемый для проверки клиент сертификаты. По умолчанию используется значение системного свойства javax.net.ssl.trustStore. Если ни этот атрибут, ни системное свойство по умолчанию не установлены, хранилище доверенных сертификатов не будет настроено.
Для меня это говорит мне, что для входящий подключение к моему серверу tomcat, здесь я буду хранить сертификаты, которые клиент представит. (например, браузер пользователя)
Действительно ли я вставляю здесь сертификаты стороннего центра сертификации или сертификаты других сторонних серверов, если мой сервер tomcat хочет сделать исходящий подключение к серверу с поддержкой TLS (например, серверу LDAPS)?
Насколько я понимаю, место для этого - cacerts файл.
Чтобы уточнить, цель truststoreFile
кажется, что явно отличается от параметра java javax.net.ssl.trustStore
Последнее, по-видимому, предназначено для доверия сторонним сертификатам CA, во многом так же, как список CA браузеров.
Файл по умолчанию jssecerts
или cacerts
Я ошибаюсь?
Вы правы в том, что хранилище доверенных сертификатов используется для проверки сертификата клиента на наличие входящих подключений.
Но в файле cacert этого делать не следует. Файл cacert содержит все доверенные сертификаты CA. Это означает, что любое клиентское соединение с вашим tomcat с использованием действительного сертификата, подписанного доверенным центром сертификации, будет иметь доступ.
Таким образом, хранилище доверенных сертификатов используется для ограничения доступа к определенному клиенту или клиентам.
Например: у вас развернуто несколько приложений, каждое для разных клиентов. У каждого приложения есть веб-сервис, который принимает данные. Чтобы предотвратить использование клиентом A веб-службы клиента B, вы можете настроить для своих котов доверенные магазины и попросить своих клиентов отправлять свои собственные клиентские сертификаты с запросами. Когда клиент A делает запрос со своим сертификатом к tomcat клиента B, последний не найдет сертификат в своем хранилище доверенных сертификатов, не будет доверять соединению и прервет его.