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
は、キーストアファイルに設定されて修正されています。
それは何でしょうか?
これに遭遇した他の誰にとっても:キー(意図されていない)は、同じエイリアスを使用して証明書をインポートすることです。実行された '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ファイルで参照する必要があるエイリアスです。