Tomcat 7 (7.0.10) で SSL を構成する際に問題があります。ここでは Thawte SGC 証明書を使用しています。以下の説明をよくお読みください。以下の手順に従いました
1) 以下のコマンドを使用して生成されたキー
keytool -genkey -keysize 2048 -alias test_self_certificate -keyalg RSA -keystore test_self_certificate.jks -validity 730
このコマンドは、現在のフォルダーに「<strong> test_self_certificate.jks」ファイルを生成しました
2) 以下のコマンドを使用して生成された CSR
keytool -certreq -alias test_self_certificate -file my_application.csr -keystore test_self_certificate.jks
このコマンドは、現在のフォルダーに「<strong> my_application.csr」ファイルを 生成しました
3) 次に、この CSR を Thawte に送信し、PKCS#7 形式の証明書を取得しました。その証明書のテキストをメモ帳にコピーし、そのファイルを「<strong> signed_certificate.p7b」として保存しました。</p>
4)次に、新しいJKSキーストアを作成し、以下のコマンドを使用してThawteから受け取った証明書をインポートしました
keytool -import -alias signed_cert -trustcacerts -file signed_certificate.p7b -keystore tomcat_application.jks
このコマンドは、現在のフォルダーに「tomcat_application.jks」ファイルを生成しました
5) 以下のように tomcat server.xml を更新しました (正しい .jks ファイル パスとキーストア パスワードを指定しました)。
<Connector port="8001" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystoreFile="/export/home/parsupport/Tomcat_certs/ tomcat_application.jks " keystorePass="parlive" clientAuth="false" sslProtocol="TLS" />
6) この変更の後、Tomcat を起動すると例外が発生し、Tomcat は SSL で起動しません。
Caused by: javax.net.ssl.SSLException: No available certificate or key corresponds to the SSL cipher suites which are enabled.
at com.sun.net.ssl.internal.ssl.SSLServerSocketImpl.checkEnabledSuites(SSLServerSocketImpl.java:310)
at com.sun.net.ssl.internal.ssl.SSLServerSocketImpl.accept(SSLServerSocketImpl.java:255)
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.checkConfig(JSSESocketFactory.java:774)
重要な注意 :ただし、キーストア (test_self_certificate.jks -- 上記の最初の手順で説明) で Thawte から受信した証明書をインポートして、 KeyPair と CSR を生成し、そのキーストアを使用して tomcat を構成する場合 (上記の手順 6 で説明) ) その後、Tomcat は SSL モードで起動しますが、HTTPS URL を起動しようとすると、信頼できない証明書の警告が表示されます。