Добавление самозаверяющего сертификата внешнего сервера к доверенным сертификатам моего Tomcat

Моему Tomcat необходимо подключиться к другому веб-серверу (по адресу https://foreign.example.com ), используя SSL (TLS).

foreign.example.com имеет самоподписанный сертификат, которому я доверяю. Конечно, мой Tomcat не работает по умолчанию, поэтому я должен это сказать. Один из способов сделать это:

$JRE/bin/keytool -import -alias my -file ssl-cert-myselfsigned.cer -keystore 
 $JRE/lib/security/cacerts

Это работает : мой Tomcat разрешает SSL-соединение.

Однако мне не нравится делать это таким образом : он импортирует сертификат в доверенные ключи моей установки Java. Я не хочу говорить: «Каждое приложение, которое запускает Java на моей машине, должно доверять этому сертификату». Только Tomcat (или пользователь, который запускает Tomcat) должен доверять ему.

Поэтому я попытался импортировать его в хранилище ключей пользователя Tomcat по адресу ~ / .keystore и настроить Tomcat со следующими атрибутами:

keystoreFile="${user.home}/.keystore"
keystorePass="thePassphraseICreatedTheKeystoreWith"

Однако это вообще не работает (я полагаю, это только для сертификата сервера моего Tomcat, а не для серверных сертификатов внешних серверов, верно?)

Я пробовал то же самое с атрибутами truststoreFile / truststorePass , но они тоже не работали. (Атрибуты задокументированы по адресу http://tomcat.apache.org/tomcat-6.0-doc/config/http.html )

Есть ли способ настроить Tomcat с сервером внешнего сервера cert или, может быть, добавить некоторые параметры командной строки в java , что сделает мое хранилище ключей (и кодовую фразу) доступным экземпляру JVM?

7
задан Chris Lercher 27 June 2011 в 18:21
поделиться