当前位置: 首页 > 面试题库 >

如何为Java指定SSL密码套件的服务器首选顺序?

山阳辉
2023-03-14
问题内容

我正在将Java 1.6和netty 3.8用于HTTP /
HTTPS服务器。我已经通过ssllab.com(https://www.ssllabs.com/ssltest/analyze.html)进行了SSL测试,并且得到了如下所示的密码套件的结果。

密码套件(按强度排序服务器无偏好

但是,google.com的结果却有所不同。
https://www.ssllabs.com/ssltest/analyze.html?d=www.google.com&s=74.125.227.148

密码套件( 以服务器优先顺序 使用 SSL 3+套件 ,然后使用SSL 2套件)

如何设置密码套件的服务器端优先顺序?JSSE是否具有任何相关属性或API?

提前致谢。


问题答案:

您可以尝试setEnabledCipherSuites()以期望的顺序调用数组,但是JSSE文档中没有任何内容表明它将使用该顺序作为期望的顺序,并且TLS
RFC 2246中没有任何内容表明服务器必须服从任何特定的顺序。在客户建议的密码套件中进行选择时。

编辑 您最好将Apache HTTPD反向代理放在服务器前面,并在该服务器处终止SSL。Apache
HTTPD使用OpenSSL,它可以让您完全执行所需的操作。假设您正在编写Webapp,则对于某些Webapp需要客户端证书而另一些不需要客户端证书的情况也更好。



 类似资料:
  • 问题内容: 我在端口443上创建了一个套接字,如下行: 然后,我想在此套接字中查看启用的密码套件,我使用了: 然后,我只选择一个我希望我的应用程序在与远程服务器建立握手时使用的密码套件。我做了以下事情: 然后我进行了握手,并检查了会话密码套件: 但是我发现握手后在上一个打印输出语句中打印的密码的名称(据我了解,这是会话中实际使用的密码)不是我之前使用的密码 为什么我仍然看不到我选择的密码套件是二手

  • 问题内容: 我正在使用的保护客户端和服务器程序之间的通信。该服务器程序还提供来自Web浏览器的HTTPS请求。 据“ 开始加密与Java ”,371页,你应该总是叫,以确保密码套件最终被谈判是为您的目的足够强。 话虽这么说,对我的方法的调用产生了大约180个选项。这些选项的范围从(我认为是相当安全的)到(不确定MD5的当前状态是否安全)到(不确定要做什么)。 限制套接字使用的密码套件的明智列表是什

  • 在我的需求规格中写着: 支持这些安全框架的TLS实现应至少实现以下密码组:TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 Java说它在Java7的TLSv1.2中提供了这个密码套件的实现。 我不熟悉安全,所以不知道如何使用它。 在我的客户端,我使用: 我从谷歌那里学到的是,客户端为服务器提供了一系列选项,服务器需要选择其中之一。如果我错了,请纠正我。 现在我想在服

  • 我有客户端应用程序,它使用apache-Commons-http客户端2.0,我需要连接到不同的服务器。作为加密协议,我使用: 一般来说,它工作正常,但在某些服务器上会发生以下情况: 如果我从协议列表中删除TLSv1,它将与此服务器一起正常工作,我将获得预期的200状态。因此,我有一个问题——如何预先定义服务器支持哪种协议(SSL或TLS)和协议版本? 或者也许有其他方法来解决这个问题?

  • 这就是第一台服务器的样子: 这是第二台服务器的样子: 第一台服务器运行良好,但当我试图运行第二台服务器时,我会得到follwing错误,这意味着到第一台服务器的连接失败。如果有人能帮助我,我会很高兴的!