Мой 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 <Connector>
с этими атрибутами:
keystoreFile="${user.home}/.keystore"
keystorePass="thePassphraseICreatedTheKeystoreWith"
Однако это не работает вообще (я полагаю, это только для серверного сертификата моего Tomcat, а не для серверных сертификатов иностранныхсерверы, верно?)
Я попробовал то же самое с truststoreFile
/truststorePass
атрибутов, но они тоже не работали.(Атрибуты задокументированы в http://tomcat.apache.org/tomcat-6.0-doc/config/http.html)
. Есть ли способ настроить Tomcat с сертификатом сервера стороннего сервера, или, возможно, добавить некоторые параметры командной строки в java
, что делает мое хранилище ключей (и ключевую фразу хранилища ключей)) доступно для экземпляра JVM?