Apache Tomcat 7
の次のコネクタ要素を使用して、server.xml
を通じて動作するWebサービスを実行しています。
<Connector port="443" protocol="org.Apache.coyote.http11.Http11Protocol"
SSLEnabled="true"
maxThreads="150"
scheme="https"
secure="true"
clientAuth="false"
keystoreFile="C:\Java\myhost.keystore"
keystorePass="importkey"
sslProtocol="TLS"
/>
これは何年もうまく機能してきましたが、今では新しいLogjam
セキュリティ脅威が出現し、 TLS用のDiffie-Hellmanの導入ガイド の手順を使用してWebサービスを保護しようとしています。
そこで、<connector>
要素に次の行を追加しました。
ciphers = "ECDHE-RSA-AES128-GCM-SHA256、ECDHE-ECDSA-AES128-GCM-SHA256、ECDHE-RSA-AES256-GCM-SHA384、ECDHE-ECDSA-AES256-GCM-SHA384、DHE-RSA-AES128-GCM -SHA256、DHE-DSS-AES128-GCM-SHA256:kEDH + AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE -RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA、ECDHE-ECDSA-AES256-SHA、DHE-RSA-AES128-SHA256、DHE-RSA-AES128-SHA、DHE-DSS -AES128-SHA256、DHE-RSA-AES256-SHA256、DHE-DSS-AES256-SHA、DHE-RSA-AES256-SHA、AES128-GCM-SHA256、AES256-GCM-SHA384、AES128-SHA256、AES256-SHA256、AES128 -SHA、AES256-SHA、AES、CAMELLIA、DES-CBC3-SHA」
Tomcatは正常に再起動しますが、Webサービスに接続できなくなりました。
ログを調べたところ、次の行に気づきました。
警告:指定された暗号はSSLエンジンでサポートされていません:ECDHE-RSA-AES128-GCM-SHA256、ECDHE-ECDSA-AES128-GCM-SHA256、ECDHE-RSA-AES256-GCM-SHA384、ECDHE-ECDSA-AES256- GCM-SHA384、DHE-RSA-AES128-GCM-SHA256、DHE-DSS-AES128-GCM-SHA256:kEDH + AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128- SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA、ECDHE-ECDSA-AES256-SHA、DHE-RSA-AES128-SHA256、 DHE-RSA-AES128-SHA、DHE-DSS-AES128-SHA256、DHE-RSA-AES256-SHA256、DHE-DSS-AES256-SHA、DHE-RSA-AES256-SHA、AES128-GCM-SHA256、AES256-GCM- SHA384、AES128-SHA256、AES256-SHA256、AES128-SHA、AES256-SHA、AES、CAMELLIA、DES-CBC3-SHA
Tomcatにこれらの暗号のみを使用させるために何が欠けていますか?
SSLエンジンでサポートされるようにするにはどうすればよいですか?
説明したように hereciphers
リストを次のように設定する必要があるかもしれません:
sslProtocols = "TLS"
ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_RC4_128_SHA,
TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,
TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,SSL_RSA_WITH_RC4_128_SHA"
最初の部分であるECDHEは、使用する鍵交換アルゴリズムを指定します。 [...]
次は認証アルゴリズムRSAです。 [...]
バルク暗号であるAES128-GCMは主要な暗号化アルゴリズムであり、すべてのトラフィックの暗号化に使用されます。 [...]
最後の部分であるSHA256は、使用中のメッセージダイジェストを識別し、メッセージの信頼性を検証します。