Назад | Перейти на главную страницу

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#Troubleshooting он говорит мне указать 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 исправлен набор в файл хранилища ключей.

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

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

По сути, как говорили другие комментаторы, в конечном итоге ваш собственный сертификат НЕ должен отображаться как «trustCertEntry» в «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. Если все пойдет хорошо, когда вы импортируете свой новый сертификат, предоставленный центром сертификации (т. Е. Вы используете тот же псевдоним и ваши ключи совпадают), новый сертификат будет автоматически включен в PrivateKeyEntry. Это псевдоним, на который вам нужно ссылаться в файле Tomcat server.xml.