Tomcat не может найти ключевую запись в хранилище ключей

Я устанавливаю сертификат SSL на моем сервере Tomcat, но он не может найти запись ключа в моем файле хранилища ключей.

Если я не укажу keyAlias="mykey" это показывает мне следующее сообщение об ошибке:

javax.net.ssl.SSLException: No available certificate or key corresponds to the SSL cipher suites which are enabled.

Как я видел в документации по Tomcat http://tomcat.apache.org/tomcat-5.5-doc/ssl-howto.html, он говорит мне, чтобы указать keyAlias,

Однако, когда я делаю это, я получаю следующее сообщение об ошибке:

java.io.IOException: Alias name mykey does not identify a key entry

И если я keytool -list -keystore .keystore -vЯ получаю три ключевые записи, две от сертифицирующей компании и последнюю:

Alias name: mykey
Creation date: Dec 17, 2011
Entry type: trustedCertEntry

То есть ключевая запись есть, но Tomcat не может ее найти. keystoreFile исправлено в файл хранилища ключей.

Что это может быть?

1 ответ

Для всех, кто сталкивается с этим: Ключ (каламбур не предназначен) - импортировать ваш сертификат, используя тот же псевдоним, который использовался для первоначального создания хранилища ключей (вместе с его закрытым ключом), когда вы запустили 'keytool -genkey-alias myalias... '- так Tomcat связывает закрытый ключ с вашим новым сертификатом при его импорте.

По сути, как говорили другие комментаторы, в конце концов, ваш собственный сертификат НЕ должен показываться в виде "trustedCertEntry" в "keytool -list" - это должен быть "PrivateKeyEntry", см. Пример ниже:

keytool -list -keystore sample.keystore

Your keystore contains 1 entry
example, Aug 28, 2018, PrivateKeyEntry,
Certificate fingerprint (SHA1): 12:E0:20:64:92:8A(...)

Вы можете узнать исходный псевдоним, запустив 'keytool -list' и ища запись PrivateKeyEntry. Если все идет хорошо, когда вы импортируете свой новый сертификат, предоставленный CA (т.е. вы используете тот же псевдоним и ваши ключи совпадают), новый сертификат будет автоматически поглощен в PrivateKeyEntry. Это псевдоним, на который вы должны ссылаться в файле server.xml Tomcat.

Другие вопросы по тегам