HTTPS Tomcat keystore сертификат

Столкнулся с другой проблемой с помощью SSL и Tomcat: я настроил keystore, который содержит ключ и сертификат (сертификат сервера, который я хочу представить клиентам, соединяющимся с сайтом). Я сделал то же для базы доверенных сертификатов (я испытываю необходимость в аутентификации клиента).

Проблема, которую я имею теперь, состоит в том, что, когда я соединяюсь со своим экземпляром Tomcat через HTTPS, сертификат, представленный мне (сертификат сервера), не является моим фактическим сертификатом сервера, а скорее ключом в JKS 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

Я заменил действительные значения заполнителями. = доменное имя сервера (но в этом случае, по некоторым причинам это - ключ а не сертификат). X = VeriSign CA (это должно быть корректно). У меня есть существующий сертификат, который я хотел бы использовать для представления клиентам, которые я импортировал в JKS keystore использующий 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 не представляет корректный сертификат?

19
задан tmbrggmn 13 January 2010 в 09:11
поделиться

2 ответа

проблема (по-видимому - я не могу действительно подтвердить это), что невозможно должным образом импортировать ранее сгенерированный сертификат (и соответствие ключу) в JKS keystore и представить его должным образом Tomcat.

ситуация, в которой произошла моя проблема, следующие:

  1. у меня есть файл сертификата, который я генерировал сам использование OpenSSL с нуля (ключ + CSR-> сертификат), подписанный моим собственным Приблизительно
  2. я хочу настроить Tomcat так, чтобы это представило этот конкретный сертификат пользователям, соединяющимся с моим сайтом.

решение я нашел для работы:

  1. Преобразовывают существующий сертификат и его закрытый ключ в формат DER. Например (использующий OpenSSL):

    Для закрытый ключ ;

    openssl pkcs8-topk8-nocrypt - в my_private_key.key - сообщают PEM - my_private_key.der-outform DER

    Для фактического подписанный сертификат ;

    openssl x509 - в my_certificate.crt - сообщают PEM - Импорт my_certificate.der-outform DER

  2. оба файлы DER в keystore (файл JKS) использование пользовательского класса Java.

    java ImportKey my_private_key.der my_certificate.der

    я не изображал это сам (весь кредит переходит к исходному изобретателю (изобретателям)).The источник для этого класса Java, и еще некоторые детали могут быть найдены здесь и здесь . Я изменил этот класс немного так, чтобы было 3-е (или 4-е) параметр, который указывает выходное местоположение получающегося файла JKS.

конечным результатом является JKS keystore, который может затем использоваться в конфигурации Коннектора Tomcat в качестве keystore. Вышеупомянутый инструмент генерирует файл JKS с паролями по умолчанию для ключа и сам файл JKS, они могут быть изменены более позднее использование keytool-storepasswd и keytool-keypasswd . Надежда это помогает для людей, сталкивающихся с той же проблемой.

15
ответ дан 30 November 2019 в 04:48
поделиться

Ваша конфигурация должна работать правильно.

Как - к объясняет шаги, чтобы предпринять, чтобы иметь правильные JKS.

Убедитесь, что вы импортировали сертификат на JKS, с соответствующими псевдонимами (TestKey)

3
ответ дан 30 November 2019 в 04:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: