web-dev-qa-db-ja.com

Tomcatがキーストアでキーエントリを見つけられない

TomcatサーバーにSSL証明書をインストールしていますが、キーストアファイルでキーエントリが見つかりません。

keyAlias="mykey"を指定しないと、次のエラーメッセージが表示されます。

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

Tomcat Documentation 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の場合、3つのキーエントリを取得します。2つは証明書会社から、もう1つは最後のエントリです。

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

つまり、キーエントリはそこにありますが、Tomcatはそれを見つけることができません。 keystoreFileは、キーストアファイルに設定されて修正されています。

それは何でしょうか?

6
João Daniel

これに遭遇した他の誰にとっても:キー(意図されていない)は、同じエイリアスを使用して証明書をインポートすることです。実行された 'keytool -genkey-alias myalias ...'-これは、Tomcatがインポート時に秘密鍵と新しい証明書を結び付ける方法です。

基本的に、他のコメンターが言ったように、最終的にあなた自身の証明書は「keytool -list」で「trustedCertEntry」として表示されるべきではありません-「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に吸収されます。これは、Tomcatのserver.xmlファイルで参照する必要があるエイリアスです。

3
Saul