警告:SSL 引擎不支持指定的任何密碼
我有一個正在執行的 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
出現了新的安全威脅,我正在嘗試使用部署 Diffie-Hellman 的指南獲取 TLS說明來保護我的 Web 服務。
<connector>
因此,我在元素中添加了以下行:密碼=“ECDHE-RSA-AES128-GCM-SHA256、ECDHE-ECDSA-AES128-GCM-SHA256、ECDHE-RSA-AES256-GCM-SHA384、ECDHE-ECDSA-AES256-GCM-SHA38、GCM-SHA38-SHA256、DHE -DSS-AES128-GCM-SHA256:kEDH + AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-EC -RSA-AES256-SHA384:ECDHE-ECDSA -AES256-SHA384:ECDHE-RSA-AES256-SHA、ECDHE-ECDSA-AES256-SHA、DHE-RSA-AES128-SHA256、DHE-RSA-AES -AES128-SHA256、DHE-RSA-AES256-SHA256、DHE-DSS -AES256-SHA、DHE-RSA-AES256-SHA、AES128-GCM-SHA256、AES256-GCM-SHA384、AES128-A25、AES128-A25-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-EC GCM-SHA384 , DHE-RSA-AES128-GCM-SHA256, DHE-DSS-AES128-GCM-SHA256: kEDH + AESGCM: ECDHE-RSA-AES128-SHA256: ECDHE-ECDSA-AES128-AES128-S SHA: ECDHE-ECDSA-AES128- SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA、ECDHE-ECDSA-AES256-SHA、D-25 DHE-RSA-AES128-SHA、DHE-DSS-AES128 -SHA256、DHE-RSA-AES256-SHA256、DHE-DSS-AES256-SHA、DHE-RSA-AES256-SHA、AES128-GCM-SHA256、AES SHA384、AES128-SHA256、AES256-SHA256、AES128-SHA、AES256- SHA、AES、CAMELLIA、DES-CBC3-SHA
我在試圖讓 Tomcat 只使用這些密碼時缺少什麼?
如何使 SSL 引擎支持它們?
如here所述,您可能必須
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 標識正在使用的消息摘要,用於驗證消息的真實性。