Java 8 SSLContext.getInstance("TLSv1.2") 是什么意思?

2023-11-29

我正在尝试为某个端点 URL 调用 REST API,它对于 java.net 的 URL 运行良好,并且在执行相同的操作后。但在某些机器上,它因某些 SSLException 而失败,因此代码被修改如下:

HttpsURLConnection connection = (HttpsURLConnection) new URL( url ).openConnection()

SSLContext sc = SSLContext.getInstance("TLSv1.2")
sc.init(null, null, new SecureRandom())
connection.setSSLSocketFactory(sc.getSocketFactory())
connection.setRequestProperty("charset", "utf-8")

InputStream input = connection.getInputStream()
InputStreamReader reader = new InputStreamReader(input, "utf-8")
BufferedReader buffer = new BufferedReader(reader)

buffer.lines().collect(Collectors.joining("\n"))

现在它又工作正常了,如果我没记错的话,它是为了安全通信,但是为什么 SSLException 在 Linux 环境上而不是在 Windows 上,并且SSLContext.getInstance("TLSv1.2")这适用于所有环境吗?为什么不是 TLSV1.1 所有环境默认都有 1.2 或最新版本,我如何确保它能在所有环境上运行?


TLS 代表传输层安全这是取代安全套接字层 (SSL) 的标准。有几个版本的 TLS v1.1 和 v1.2 被认为是安全的(目前 v1.3 正在起草)。如果您不想深入研究技术细节,那么最好使用最新的 TLS 版本。

Java 中的 TLSv1.2 在这里得到了很好的解释:JDK 8 将默认使用 TLS 1.2。由于 TLSv1.2 是在 JDK 内部实现的,因此它应该适用于所有操作系统。由于有多个 JDK 供应商(Oracle、OpenJDK、Azul 等),您希望使用您的 JDK 对此进行测试。问题是旧版本,例如Oracle HotSpot Java 6 仅支持 SSL,除非您拥有高级 Oracle 维护版本或自定义库,否则您将无法获得 TLS。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 8 SSLContext.getInstance("TLSv1.2") 是什么意思? 的相关文章

  • 使用 java 删除 XML 根的子级

    这是我的 xml 文件
  • Android:java.lang.OutOfMemoryError:

    我在 Android 上开发了一个使用大量图像的应用程序 可绘制文件夹中有很多图像 比如说超过 100 张 我正在开发图像动画应用程序 我使用 imageview 来显示 GIF 图像 我使用了将 gif 图像分割成多个 PNG 格式图像的
  • Android Toast 消息不起作用

    我正在通过 Andengine 为 Android 开发游戏 我有 MainActivity 类和 GameScene 类 我在 GameActivity 中使用 Toast 消息 它正在发挥作用 Toast makeText this H
  • 类型已知,但方法指的是缺失类型

    我对 java 和 Eclipse 不太有经验 但遇到以下问题 我正在写类似的东西 Point3D myPoint myClass myMethod arg 我收到错误 方法 myMethod myType arg 引用缺失的类型 Poin
  • 垂直 ViewPager 中的动画

    我需要垂直制作这个动画ViewPager https www youtube com watch v wuE 4jjnp3g https www youtube com watch v wuE 4jjnp3g 这是我到目前为止所尝试的 vi
  • JAXB 继承冲突 - 重新注释子类

    目前我的项目中有这样的环境 public abstract class Foo private List
  • H2数据库:如何进行加密保护,而不暴露文件加密密钥

    我们在服务器模式下使用Java H2数据库 因为我们不希望用户访问数据库文件 为了对数据库文件添加更多保护 我们计划使用 AES 加密 将 CIPHER AES 添加到数据库 URL 以防存储被盗 但是 每个用户在连接时还需要提供文件保护密
  • 使用 kryo 注册课程的策略

    我最近发现了 kryonet 库 它非常棒并且非常适合我的需求 然而 我遇到的一个问题是制定一种好的策略来注册所有可以转移的类 我知道我可以在每个对象中编写一个静态方法 该方法将返回它使用的所有类的列表 但我真的不想这样做 为了我自己的时间
  • 使用 Jena 查询维基数据

    目前 Wikidata 有一个 SPARQL 端点 https query wikidata org https query wikidata org 我想使用 Jena 3 0 1 查询此网站 我使用以下代码 但收到错误消息 端点返回的
  • 如何在 Eclipse 中获得完全限定的类名?

    有没有一种快速方法可以在 Eclipse 中单击 Java 类并获取其完全限定名称 或将其复制到剪贴板 2016年6月29日编辑 正如 Jeff 所指出的 您只需要执行以下第二步 1 Double click on the class na
  • 膨胀类 android.support.design.widget.NavigationView 时出错

    我按照 NavigationView 的教程进行操作 但无法解决此错误消息 Error inflating class android support design widget NavigationView 教程链接 https www
  • ActiveMQ JNDI 查找问题

    尝试使用 JNDI 运行以下 ActiveMQ http activemq apache org jndi support html http ActiveMQ 20JNDI 并且我的 jboss server node lib 文件夹中有
  • 了解Kafka流groupBy和window

    我无法理解 kafka 流中的 groupBy groupById 和窗口的概念 我的目标是聚合一段时间内 例如 5 秒 的流数据 我的流数据看起来像 value 0 time 1533875665509 value 10 time 153
  • Janusgraph 0.3.2 + HBase 1.4.9 - 无法设置 graph.timestamps

    我在 Docker 容器中运行 Janusgraph 0 3 2 并尝试使用运行 HBase 1 4 9 的 AWS EMR 集群作为存储后端 我可以运行 gremlin server sh 但如果我尝试保存某些内容 我会得到粘贴在下面的堆
  • 如何使用eclipse调试JSP tomcat服务?

    我想使用 Eclipse IDE 调试器来调试单独运行的 JSP Struts Tomcat Hibernate 应用程序堆栈 如何设置 java JVM 和 eclipse 以便设置断点 监视变量值并查看当前正在执行的代码 我刚刚用谷歌搜
  • 为什么不能在 if 语句中声明变量?

    以下 Java 代码无法编译 int a 0 if a 1 int b 0 if a 1 b 1 为什么 不能有任何代码路径导致程序将 1 分配给b无需先声明 我突然想到b的变量范围可能仅限于第一个if声明 但后来我不明白为什么 如果我实在
  • 在java中执行匿名pl/sql块并获取结果集

    我想执行匿名 PL SQL 并需要获取结果集对象 我得到了可以通过在 PL SQL 块内使用游标来完成的代码 但 PL SQL 块本身将以文本形式来自数据库 所以我无法编辑该 PL SQL 块 并且它只会返回两个值 其列名始终相同 它将返回
  • 检查按钮是否可用?如果没有,请等待 5 秒钟,然后再次检查?

    基本上我想看看此刻是否可以单击按钮 如果没有我想再试一次 所以我需要某种 goto 函数来返回到代码的前一行 尽管我怀疑我写得非常糟糕 但它本来可以做得更容易 try driver findElement By xpath button i
  • Firebase:用户注册后如何进行电话号码验证?

    所以我知道我可以使用电子邮件验证或电话号码验证 但我想做的是在用户注册或登录后进行电话号码验证 如何连接这两种身份验证方法 最后 Firebase中是否有一个函数可以检查用户是否通过电话号码验证 谢谢 即使用户已通过身份验证 您仍然可以使用
  • 从 InputStream 中删除换行符

    我喜欢从一个文件中删除所有换行符 对于 n 和 r n java io InputStream 在读取文件时 相应的方法如下所示 param target linkplain File return linkplain InputStrea

随机推荐

  • 从本地文件发出 XML 跨域请求

    我不确定这是否可能 基本上我想在客户端 PC 上加载本地 html 文件并让它向远程服务器发出请求 服务器提供的数据是XML 当我说我正在加载文件时 我的意思是 Chrome 中的 URL 显示为 file E 这是我最接近能够加载 XML
  • 如何有条件地更新 Pandas 中的 DataFrame 列

    有了这个DataFrame 我如何有条件地设置rating为 0 时line race等于零 line track line race rating foreign 25 MTH 10 84 False 26 MTH 6 88 False
  • 如何处理图像中的浮点坐标值

    我正在图像上绘制一些几何图形 问题是坐标以浮点数形式出现 所以我无法绘制它们 作为解决办法 我正在使用 Floor 将其截断为最接近的整数 这在某些情况下效果很好 只是它稍微改变了我的形象 x 9 7 x floor x 9 the plo
  • 您是否会将 NHibernate 用于具有遗留数据库的项目,而该数据库部分超出了您的控制范围?

    对我来说 目前的答案是 不 我会使用 iBatis 因为当数据库模型和对象模型不同步时 NHibernate 很痛苦 如果我不能完全控制数据库 我最终会做很多工作 我为什么要问 好吧 首先 我从未使用过 NHibernate 我只是从表面上
  • 使用 SWIG 从 C++ 回调到 C#

    我有一个在 C Net Core 和 C Windows 应用程序中运行的应用程序 我使用 SWIG 实现了 C 和 C 之间的互操作性 但我无法实现从 C 到 C 的回调功能 我还尝试将函数指针从 C 传递到 C 但也失败了 我的意图是通
  • python argparse,如何通过名称引用参数

    这是一个关于python中argparse的问题 它可能很简单 import argparse parser argparse ArgumentParser parser add argument lib args parser parse
  • 单击后更改 wpf C# 中按钮的颜色,并在 2 分钟后保留原始颜色

    我正在使用这个代码 Hello Background System Windows Media Brushes Blue var dispatcherTimer new DispatcherTimer dispatcherTimer Int
  • UnicodeWarning:Tkinter 中的特殊字符

    我用 Tkinter Python 2 7 编写了一个程序 这是一个挪威语的拼字游戏助手 其中包含一些特殊字符 这意味着我的单词列表 ordliste 包含带有特殊字符的单词 当我运行函数 finnord c 时 它返回 cd 我正在使用一
  • 使用 Xcode 4.3.x 构建适用于 iOS 3.0 的通用应用程序 - NSKeyedUnarchiver 异常

    尝试使用 Xcode 4 3 2 构建和调试适用于 iOS 3 0 的通用应用程序 我从 NSKeyedUnarchiver 收到 NSException 看来这可能与无法读取主 xib 文件有关 我见过这个 iOS 和取消归档 xib 文
  • __init__() 恰好需要 3 个参数(给定 1 个)

    我今天刚开始学习Python 所以如果这是一个简单的问题 我很抱歉 我花了半个小时尝试纠正以下代码 class Area def init self width height self width width self height hei
  • MySQL 查询优化 - JOIN?

    适合所有 MySQL 专家的一款 我有以下查询 SELECT o p name p amount p quantity FROM orders o products p WHERE o id p order id AND o total 0
  • C中int指针的初始化

    关于在 C 中初始化 int 指针的一个非常简单的问题 我是刚刚通知那 int varname 0 无效 我还没有找到指出这一点的明确参考 但有信心 基于评论者代表 它可能无效 即使它可以编译 构建和接受来自 calloc malloc 语
  • Maven + Surefire 在测试失败时返回代码为 0

    我有一个项目 测试分为单元阶段和集成阶段 我让它运行 buildbot 问题是即使在测试失败时 maven 返回代码也是 0 所以 buildbot 构建是成功的 这是 mvn 集成测试的结果 Results Tests in error
  • 将自定义 UIButton 添加到 UIKeyboard 的 UIWebView 附件视图

    我需要添加一个相机按钮UIWebView的键盘附件视图工具栏 已经具有 后退 下一步 和 完成 按钮的工具栏 是否有捷径可寻 我仍在寻找更好的方法来做到这一点 但目前的一个解决方案是销毁该栏并重新创建它 如下所示 void viewDidL
  • 应用程序脚本 - function () { [本机代码] }

    我正在制作一个谷歌应用程序脚本 我正在尝试制作一个可以读取第一个 callendar 事件的程序 问题是 当我尝试从中获取任何内容时 它只会写 function 本机代码 我看过一些为 javascript 编写的问题 但我不明白如何将 j
  • 如何触摸画布?

    这里是颤振新手 我目前正在尝试使用 Flutter 构建一个简单的触摸绘图应用程序 但无法弄清楚如何触发画布重新绘制 我所拥有的是这样的 我有一个 CustomPaint 小部件 其中包含一个 GestureDetector 子部件 每当发
  • 标准流的输入流/输出流 - Java

    我的理解是 字符流和字节流在C内部工作FILE stream C世界中的标准流是FILE stdin FILE stdout FILE stderr 输入流 and 输出流正在为文件 管道等资源提供子类 输入流 and 输出流api文档不讲
  • C++ 中的返回类型

    include
  • 不使用 intdiv() 的大数整数(64 位)除法(php7 之前)

    测试是在64位系统下进行的 php7有一个很好的功能 intdiv 下面的代码可以完美运行 number 0x7fffffffffffffff result intdiv number 62 结果是148764065110560900 其余
  • Java 8 SSLContext.getInstance("TLSv1.2") 是什么意思?

    我正在尝试为某个端点 URL 调用 REST API 它对于 java net 的 URL 运行良好 并且在执行相同的操作后 但在某些机器上 它因某些 SSLException 而失败 因此代码被修改如下 HttpsURLConnectio