解决SSLContext.getInstance()中参数设置TLS版本无效的问题

 更新时间:2024年01月23日 10:21:33   作者:翟小江  
这篇文章主要介绍了解决SSLContext.getInstance()中参数设置TLS版本无效的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

问题

SSLContext sc = SSLContext.getInstance(“TLSv1.1”)

设置后,https握手连接使用中使用的TLS版本还是jdk的默认版本(jdk7默认是TLSv1,jdk8默认是TLSv1.2)。

原因

代码中有这个段

conn.getOutputStream().write(postBody.toString().getBytes());

// 输入参数 进行输入参数,而

SSLContext sc = SSLContext.getInstance(“TLSv1.1”)

放在

conn.getOutputStream().write(postBody.toString().getBytes())

代码的后面,导致设置的TLSv1.1不生效。

解决办法

将SSLContext.getInstance(“TLSv1.1”)放到

conn.getOutputStream().write(postBody.toString().getBytes())

的前面即可。

以下在jdk8环境下的测试:

这样设置不生效

![

这样设置才生效

具体的原因

是因为在conn.getOutputStream()获取输出流的过程中,conn就已经做了conn.connect()方法了,一条连接已经建立了,后面再进行SSLContext sc = SSLContext.getInstance(“TLSv1.1”);指定TLS的版本自然就不会生效了。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • mybatis写xml时数字类型千万别用 !=‘‘(不为空串)进行判断的示例详解

    mybatis写xml时数字类型千万别用 !=‘‘(不为空串)进行判断的示例详解

    这篇文章主要介绍了mybatis写xml时数字类型千万别用 !=‘‘(不为空串)进行判断的示例详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • 分布式难题ElasticSearch解决大数据量检索面试

    分布式难题ElasticSearch解决大数据量检索面试

    这篇文章主要为大家介绍了分布式面试难题,ElasticSearch解决大数据量检索的问题分析回答,让面试官无话可说,帮助大家实现面试开薪自由
    2022-03-03
  • Java设计模式之单例模式简介

    Java设计模式之单例模式简介

    这篇文章主要介绍了Java设计模式之单例模式简介,文中有非常详细的代码示例,对正在学习Java的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-04-04
  • IDEA main主函数如何添加args变量

    IDEA main主函数如何添加args变量

    这篇文章主要介绍了IDEA main主函数如何添加args变量,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12
  • Java设置请求响应时间的多种实现方式

    Java设置请求响应时间的多种实现方式

    在前后端分离的开发模式中,前端请求后端获取数据时,合理设置响应时间(超时时间)是提升系统性能和用户体验的关键,本文将深入探讨如何在Java中设置请求的响应时间,需要的朋友可以参考下
    2025-01-01
  • Java中串行接口调用优化方式

    Java中串行接口调用优化方式

    这篇文章主要介绍了Java中串行接口调用优化方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • springboot使用Logback把日志输出到控制台或输出到文件

    springboot使用Logback把日志输出到控制台或输出到文件

    这篇文章给大家介绍springboot项目使用日志工具Logback把日志不仅输出到控制台,也可以输出到文件的操作方法,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2020-10-10
  • Java 微信公众号开发相关总结

    Java 微信公众号开发相关总结

    公众号作为主流的自媒体平台,有着不少人使用。这次以文本回复作为案例来讲解Java相关的微信公众号开发
    2021-05-05
  • Resilience4J通过yml设置circuitBreaker的方法

    Resilience4J通过yml设置circuitBreaker的方法

    Resilience4j是一个轻量级、易于使用的容错库,其灵感来自Netflix Hystrix,但专为Java 8和函数式编程设计,这篇文章主要介绍了Resilience4J通过yml设置circuitBreaker的方法,需要的朋友可以参考下
    2022-10-10
  • 利用反射获取Java类中的静态变量名及变量值的简单实例

    利用反射获取Java类中的静态变量名及变量值的简单实例

    下面小编就为大家带来一篇利用反射获取Java类中的静态变量名及变量值的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12

最新评论