在 Java 7 和 8 下,如果在 WSO2 产品中使用“弱”DHE 公钥进行 SSL 通信,Firefox v39.0 + 和 Chrome v45.0 + 可能会产生错误。
要解决此问题,您有以下三种选择:
1.您需要 禁用 使用的DHE密码。
配置以下密码套件,然后可用于 CARBON_HOME/repository/conf/tomcat/catalina-server.xml 中的 SSL 通信。此密码参数必须在 TLS 连接器元素内配置。
ciphers="SSL_RSA_WITH_RC4_128_MD5,SSL_RSA_WITH_RC4_128_SHA,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA"
为了实现“ 完美前向保密 ”,我们通常需要 DHE;因此,删除 DHE 密码不是一个好的选择。
2. 为 DHE_RSA SSL 密码套件使用 1024 位 (或更大)Diffie-Hellman 组。
为此,您需要使用 JAVA 8.0 。 JAVA 8.0 中的以下参数可用于将密钥大小自定义为某个更大的值。
ciphers="SSL_RSA_WITH_RC4_128_MD5,SSL_RSA_WITH_RC4_128_SHA,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA"
JAVA 7.0 不 支持 1024 位密钥大小,您不能使用上述参数来配置更大的密钥大小(在最新的 JAVA 7.0 公开版本中)
目前WSO2产品 不能 使用JAVA 8.0运行;但是,WSO2 的未来版本将能够使用 JAVA 8.0 运行,然后您可以使用具有更大密钥大小的 DHE 密码。
3.启用
ECDHE
我们可以在 WSO2 服务器中只启用 ECDHE 密码而不使用 DHE 密码。这样,我们就可以免受“弱密码”和“完美前向保密”攻击。
因此,您可以在 CARBON_HOME/repository/conf/tomcat/catalina-server.xml 中添加以下可用于 SSL 通信的密码套件。 此密码的参数必须在 TLS 连接器元素内配置。
ciphers="SSL_RSA_WITH_RC4_128_MD5,SSL_RSA_WITH_RC4_128_SHA,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA"