網頁

2015年9月12日 星期六

使用Chrome或Firefox發生:伺服器的暫時 Diffie-Hellman 公開金鑰不足

最近使用Chrome時查看問題時,原本寫好好的案子突然出現"伺服器的暫時 Diffie-Hellman 公開金鑰不足",一開始以為發生什麼大事,仔細查了一下才發現是Chrome更新版中針對ECDSA and DSS ciphers是要放棄不使用了。不過這下可好,Chrome及Firefox都不能用,程式沒當但等同是當了,仔細查了下,看到這篇:解決「伺服器的暫時 Diffie-Hellman 公開金鑰不足」,看起來是之前TLSv3的問題等造成後續處理。

查了下原本建好的設定
<Connector protocol="HTTP/1.1" port="8443" maxHttpHeaderSize="8192"
                   maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
                   enableLookups="false" disableUploadTimeout="true"
                   acceptCount="100" scheme="https" secure="true"
                   SSLEnabled="true"
                   clientAuth="false" sslProtocol="TLS"
                   keystoreFile="{路徑}/ngss_cer/key.jks"
                   keyAlias="xxx"
                   keystorePass="xxxxxx"
                   truststoreFile="{路徑}/key.jks"
                   truststorePass="docsntnu" URIEncoding="UTF-8"  />


參考了ERR_SSL_WEAK_SERVER_EPHEMERAL_DH_KEYSSL/TLS, ciphers, perfect forward secrecy and Tomcat,看起來只要加上ciphers我設定。更正設定如下:

<Connector protocol="HTTP/1.1" port="8443" maxHttpHeaderSize="8192"
                   maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
                   enableLookups="false" disableUploadTimeout="true"
                   acceptCount="100" scheme="https" secure="true"
                   SSLEnabled="true"
                   clientAuth="false" sslProtocol="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"
                   keystoreFile="{路徑}/ngss_cer/key.jks"
                   keyAlias="xxx"
                   keystorePass="xxxxxx"
                   truststoreFile="{路徑}/key.jks"
                   truststorePass="docsntnu" URIEncoding="UTF-8"  />

重啟Tomcat後就ok了。

參考網址:
Disabling SSLv3 and SSLv2 in Tomcat and JBoss Web
ERR_SSL_WEAK_SERVER_EPHEMERAL_DH_KEY
SSL/TLS, ciphers, perfect forward secrecy and Tomcat
服務器有弱短暫的Diffie-Hellman公開 (Server has a weak ephemeral Diffie-Hellman public)

沒有留言:

張貼留言