我有一個正在運行的 Web 服務,Apache Tomcat 7
其中包含以下連接器元素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、DHERSA -SHA256,DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:EC -RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA、ECDHE-ECDSA-AES256-SHA、DHE-RSA-AES128-SHA256、DHE-RSA-AES128-RSA -AES128-SHA256、DHE-RSA-AES256-SHA256、DHE-DSS-AES256-SHA、DHE-RSA-AES256-SHA、AES128-GCM-SHA256、AES256-GCM-SHA384、AES128-GCM-SHA256、AES256-GCM-SHA384、AES128-SHA256、AES256-GCM-SHA384、AES128-256 -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-AESES25- GCM DHE-RSA-AES128-GCM-SHA256、DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSAAESDHE-EC ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA,ECDHE-ECDSA-AES256-SHA,DHE-RSA-AES128-RSA256,DSHA-256 AES128-SHA、DHE-DSS-AES128-SHA256、DHE-RSA-AES256-SHA256、DHE-DSS-AES256-SHA、DHE-RSA-AES256-SHA、AES128-GCM-SHA256、AES256-GCM-8 、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 標識正在使用的訊息摘要,用於驗證訊息的真實性。