当前位置: 首页 > 知识库问答 >
问题:

如何在Java中启用SSL 3

段干博明
2023-03-14

由于Java 8更新31,由于SSL协议中的安全缺陷,SSL 3协议在默认情况下被禁用(请参阅POODLE攻击)。

即使不推荐,如何启用?

共有3个答案

文德曜
2023-03-14

您可以在运行时设置< code > JDK . TLS . disabled algorithms 安全属性,如下所示。

static {
    Security.setProperty("jdk.tls.disabledAlgorithms", "");
}
孟宏才
2023-03-14

如果必须在 8u31、7u75、6u91 上重新启用 SSLv3.0,您只需在 JRE_HOME/lib/security/java.security 中注释掉以下行:

 jdk.tls.disabledAlgorithms=SSLv3

代码:

import javax.net.ssl.*;

public class SocketProtocols {

  public static void main(String[] args) throws Exception {

    SSLSocketFactory factory = (SSLSocketFactory) SSLSocketFactory.getDefault();
    SSLSocket soc = (SSLSocket) factory.createSocket();

    // Returns the names of the protocol versions which are
    // currently enabled for use on this connection.
    String[] protocols = soc.getEnabledProtocols();

    System.out.println("Enabled protocols:");
    for (String s : protocols) {
      System.out.println(s);
    }

  }
} 

输出:

启用 SSL 3.0 之前

$ /jdk1.8.0_31/bin/java SocketProtocols
Enabled protocols:
TLSv1
TLSv1.1
TLSv1.2

在启用SSL 3.0之后

$ /jdk1.8.0_31/bin/java SocketProtocols
Enabled protocols:
SSLv3
TLSv1
TLSv1.1
TLSv1.2

学分/来源:http://javablogx.blogspot.de/2015/02/enabling-ssl-v30-in-java-8.html

毕浩渺
2023-03-14

除非您别无选择,只能使用 SSL 3,否则下面的链接将解释配置。

update 31的发行说明提供了在Java中再次启用SSL 3的信息。

如前所述:

如果绝对需要SSLv3,则可以通过从java.security文件的jdk.tls.disabledAlgorithms属性中删除“SSLv3 ”,或者在初始化JSSE之前将此安全属性动态设置为“true ”,来重新激活该协议。

请记住,即使TLS协议也可能被利用来允许SSL 3的不安全访问,这也是POODLE缺陷的一部分。对于Java或任何其他技术来说,只有在非常重要的情况下,才应该启用这一功能。

 类似资料:
  • 问题内容: 从Java 8 Update 31开始,由于SSL协议中的安全漏洞,默认情况下禁用SSL 3协议(请参阅POODLE攻击)。 即使不推荐,如何启用它? 问题答案: 除非使用SSL 3别无选择,否则以下链接将说明配置。 更新31的发行说明提供了有关再次使用Java启用SSL 3的信息。 就像声明的那样: 如果 绝对需要 SSLv3 ,则可以通过从java.security文件中的jdk.

  • 我正在尝试在使用JBoss 6.4和Java 1.7的web应用程序中启用TLS 1.2。协议=TLSv1.2,在我的应用程序环境中,但它似乎不适合我。 我可以做些什么来启用TLS 1.2吗? 我写了一个简单的程序 在应用程序中运行此程序后,TLS 1.2被启用。我不想运行这个程序,但我想在应用程序启动期间直接启用它。有什么办法吗?

  • 我想用chrome自动化一些操作,我使用的是Selenium和chromedriver,但在执行时我遇到了这个错误 我看到我需要用

  • 问题内容: 尝试执行以下行时,仅显示最后两个语句(“ Here is some ERROR”和“ Here is some FATAL”),并且不显示前三个语句。我刚刚开始学习此主题,任何人都可以告诉为什么会这样呢? log4j.property有 问题答案: 您可能在项目中的某个地方有一个log4j.properties文件。在该文件中,您可以配置所需的调试输出级别。请参阅以下示例: 第一行将根

  • 问题内容: 我使用Flickr照片搜索API的JavaScript创建了一个演示。现在,我将其转换为AngularJs。我在互联网上搜索,发现下面的配置。 组态: 服务: 控制器: 问题答案: 你不知道 您请求的服务器必须实现CORS才能从您的网站访问权限中授予JavaScript。您的JavaScript无法授予自己访问其他网站的权限。

  • 问题内容: 标题说说我的问题。我需要将DTO包装到javascript方法回调中。目前,我应要求返回JSON。但是在Ajax中使用此问题,因为我将GET发送到其他域。当然还有治安警察。 我有创建附加提供的想法。有任何示例,链接或建议如何执行。 问题答案: RESTEasy中没有明确支持JSONP,但是在应用程序中启用JSONP的一种简单方法是编写Servlet过滤器。 这里有一些链接可以帮助您编写