Перейдите в другую проблему с использованием SSL и Tomcat: я настроил хранилище ключей, которое содержит ключ и сертификат (сертификат сервера, который я хочу представить клиентам, подключающимся к сайту). Я сделал то же самое для доверия (мне нужна аутентификация клиента).
Теперь проблема заключается в том, что когда я подключаюсь к экземпляру Tomcat через HTTPS, сертификат, представленный мне (сертификат сервера), не является моим фактическим сертификатом сервера, а скорее ключевым в JS keystore. Использование -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 не представляет правильный сертификат?