如何为Java指定SSL密码套件的服务器首选顺序?
我正在为HTTP/HTTPS服务器使用Java1.6和Netty3.8。 我已经通过ssllab.com()完成了SSL测试,并得到了如下密码套件的结果 密码套件(按强度排序;服务器没有首选项) 但是,google.com的结果有所不同。 密码套件(服务器首选顺序的SSL 3+套件,然后使用SSL 2套件) 如何设置密码套件的服务器端首选项顺序? JSSE对此有任何属性或API吗如何为Java指定SSL密码套件的服务器首选顺序?,java,ssl,encryption,jsse,Java,Ssl,Encryption,Jsse,我正在为HTTP/HTTPS服务器使用Java1.6和Netty3.8。 我已经通过ssllab.com()完成了SSL测试,并得到了如下密码套件的结果 密码套件(按强度排序;服务器没有首选项) 但是,google.com的结果有所不同。 密码套件(服务器首选顺序的SSL 3+套件,然后使用SSL 2套件) 如何设置密码套件的服务器端首选项顺序? JSSE对此有任何属性或API吗 提前感谢。您可以尝试使用所需顺序的数组调用setEnabledChiperSuites(),但JSSE文档中没有任
提前感谢。您可以尝试使用所需顺序的数组调用
setEnabledChiperSuites()
,但JSSE文档中没有任何内容表明它将使用该顺序作为所需顺序,TLS RFC 2246中没有任何内容表明服务器在选择客户机建议的密码套件时必须遵守任何特定的顺序
编辑最好在服务器前面放置一个Apache HTTPD反向代理,并在那里终止SSL。apachehttpd使用OpenSSL,它让您完全可以完成所需的工作。如果您正在编写Web应用程序,那么在某些Web应用程序需要客户端证书而其他Web应用程序不需要客户端证书的情况下,它也会更好。自Java 1.8以来,SSLParameters类上有一个方法
设置的方式取决于您使用的服务器。如果您有权访问SSLEngine,则可以获取参数,更改值,然后在引擎上重新设置参数。我已经尝试使用我的首选项顺序调用SetEnabledChiperSuites(),但它不起作用。可能无法指定它:(谢谢!