Столкнулся с другой проблемой с использованием SSL и Tomcat: я настроил хранилище ключей, которое содержит ключ и сертификат (сертификат сервера, который я хочу представить клиентам, подключающимся к сайту). Я сделал то же самое для склада доверенных сертификатов (мне понадобится аутентификация клиента).
Проблема, с которой я столкнулся сейчас, заключается в том, что когда я подключаюсь к своему экземпляру Tomcat через HTTPS, сертификат, представленный мне (сертификат сервера), является не моим действительным сертификатом сервера, а скорее ключом в JKS. Хранилище ключей. Использование -Djavax.net.debug = ssl показывает, что он представляет правильный CA для аутентификации клиента, но не правильный сертификат сервера.
adding as trusted cert:
Subject: CN=A
Issuer: CN=A
Algorithm: RSA; Serial number: -
Valid from Tue Nov 10 14:48:31 CET 2009 until Mon Feb 08 14:48:31 CET 2010
adding as trusted cert:
Subject: X
Issuer: X
Algorithm: RSA; Serial number: -
Valid from Wed Jan 19 01:00:00 CET 2005 until Mon Jan 19 00:59:59 CET 2015
Я заменил реальные значения местозаполнителями. A = доменное имя сервера (но в этом случае по какой-то причине это ключ, а не сертификат). X = VeriSign CA (это должно быть правильно). У меня есть существующий сертификат, который я хотел бы использовать для представления клиентам, который я импортировал в хранилище ключей JKS с помощью keytool.
Конфигурация соединителя Tomcat:
Connector port="444" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="conf/ssl/keystore.jks"
keystorePass="xx"
keyAlias="testkey"
truststoreFile="conf/ssl/truststore.jks"
truststorePass="xx"
Есть идеи, почему мой экземпляр Tomcat не предоставляет правильный сертификат?