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

客户端请求的协议SSLv3未启用或不受支持(IBM JDK 6.0SR10)

顾鸣
2023-03-14

从 IBM JDK 6.0SR9 更新到 6.0SR10 后,我不断得到(在服务器端):

java.io.IOException: javax.net.ssl.SSLHandshakeException: Client requested protocol SSLv3 not enabled or not supported
                at com.ibm.jsse2.kb.z(kb.java:107)
                at com.ibm.jsse2.SSLEngineImpl.b(SSLEngineImpl.java:4)
                at com.ibm.jsse2.SSLEngineImpl.c(SSLEngineImpl.java:224)
                at com.ibm.jsse2.SSLEngineImpl.wrap(SSLEngineImpl.java:377)
                at javax.net.ssl.SSLEngine.wrap(SSLEngine.java:6)

没有修改任何安全设置。知道如何(重新)启用SSLv3吗?

谢谢。

共有3个答案

阎涵忍
2023-03-14

SSLEngine.setEnabledProtocols(),但是SSLv3当然应该默认启用。我会仔细检查你的断言,它没有被禁用。

公西英叡
2023-03-14

当客户端和服务器SSL协议设置不匹配时发生异常。

以下客户端示例代码适用于配置为支持TLSv1.2协议的服务器端:

String response = "";

URL url = new URL("https://localhost:9043/myservlet);

final SSLContext ctx = SSLContext.getInstance("TLSv1.2");
ctx.init(null, null, null);
// final String protoccol = ctx.getProtocol();

HttpsURLConnection.setDefaultSSLSocketFactory(ctx.getSocketFactory());

final HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();

conn.setReadTimeout(15000);
conn.setConnectTimeout(15000);
conn.setRequestMethod("POST");
conn.setDoInput(true);
conn.setDoOutput(true);

final OutputStream os = conn.getOutputStream();
final BufferedWriter writer =
  new BufferedWriter(new OutputStreamWriter(os, "UTF-8"));

writer.write(......);

writer.flush();
writer.close();
os.close();

final int responseCode = conn.getResponseCode();

if (responseCode == HttpsURLConnection.HTTP_OK) {
  String line;
  final BufferedReader br =
    new BufferedReader(new InputStreamReader(conn.getInputStream()));
  while ((line = br.readLine()) != null) {
    response += line;
  }
}

System.out.println("response: " + response);
敖子安
2023-03-14

在以后的版本中,出于安全原因,默认禁用SSLv3。

以下技术说明应详细说明如何启用此功能

http://www-01.ibm.com/support/docview.wss?uid=swg21318567

 类似资料:
  • 问题内容: 执行JDBC程序时,连接到数据库时出现以下错误: 在研究此问题时,我知道以下错误是因为我需要向用户授予特权,所以请按照以下步骤操作 然后输入密码 然后我跑了 我也用过 但是我正在错误以下 错误1064(42000):您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在第1行的’IDENTIFIED BY’mypassword’附近使用 问题答案: 发生

  • 问题内容: 由于某种原因,我无法与服务器建立简单连接。我使用默认设置安装了最新的MySQL Community 8.0数据库以及Node.JS。 这是我的node.js代码 以下是在命令提示符中发现的错误: 我已经阅读了一些内容,例如: https //dev.mysql.com/doc/refman/5.5/en/old-client.html https://github.com/mysqlj

  • 在执行JDBC程序时,我在连接数据库时遇到以下错误: 当我研究这个问题时,我知道下面的错误是因为我需要授予用户特权,所以请遵循 > 然后输入密码 然后我跑了 我还用了 但我得到了低于误差 错误1064(42000):您的SQL语法中有错误;查看与您的MySQL服务器版本相对应的手册,以了解第1行“Identified BY'myPassword''”附近使用的正确语法

  • 我阅读了一些内容,例如:https://dev.mysql.com/doc/refman/5.5/en/old-client.htmlhttps://github.com/mysqljs/mysql/issues/1507 但我仍然不确定如何解决我的问题。如有任何帮助,将不胜感激:

  • 我正在docker容器中运行我的应用程序,其中flyway迁移工具在连接到MySQL DB(8.0.11)时出错:下面是完整的错误: 这是我的docker-compose.yml: 有谁能帮我一下。谢谢

  • 对于大多数应用程序来说,轻客户端是完整的区块链系统的重要组成部分。Tendermint 为轻客户端应用程序提供了独特的速度和安全性。 请见我们的 lite package。 概述 轻客户端协议的目标是为最近的块哈希获取提交,其中提交包含来自最后一个已知验证者集的大部分签名。从那里,所有的应用状态都可以用默克尔证明进行验证。 属性 你得到了 Tendermint 的全部担保安全优势;不需要等待确认。