Apache Tomcat 7
次のコネクタ要素を使用して、稼働中の Web サービスを実行していますserver.xml
。
<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 導入ガイド説明書。
そこで、要素に次の行を追加しました<connector>
。
暗号="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 エンジンでサポートするにはどうすればよいでしょうか?
答え1
説明したようにここ次のようにリストを設定する必要があるかもしれませんciphers
:
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 は、使用中のメッセージ ダイジェストを識別し、メッセージの信頼性を検証します。