解決SSLContext.getInstance()中參數(shù)設(shè)置TLS版本無(wú)效的問(wèn)題
問(wèn)題
SSLContext sc = SSLContext.getInstance(“TLSv1.1”)
設(shè)置后,https握手連接使用中使用的TLS版本還是jdk的默認(rèn)版本(jdk7默認(rèn)是TLSv1,jdk8默認(rèn)是TLSv1.2)。
原因
代碼中有這個(gè)段
conn.getOutputStream().write(postBody.toString().getBytes());
// 輸入?yún)?shù) 進(jìn)行輸入?yún)?shù),而
SSLContext sc = SSLContext.getInstance(“TLSv1.1”)
放在
conn.getOutputStream().write(postBody.toString().getBytes())
代碼的后面,導(dǎo)致設(shè)置的TLSv1.1不生效。
解決辦法
將SSLContext.getInstance(“TLSv1.1”)放到
conn.getOutputStream().write(postBody.toString().getBytes())
的前面即可。
以下在jdk8環(huán)境下的測(cè)試:
這樣設(shè)置不生效
這樣設(shè)置才生效
具體的原因
是因?yàn)樵赾onn.getOutputStream()獲取輸出流的過(guò)程中,conn就已經(jīng)做了conn.connect()方法了,一條連接已經(jīng)建立了,后面再進(jìn)行SSLContext sc = SSLContext.getInstance(“TLSv1.1”);指定TLS的版本自然就不會(huì)生效了。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
mybatis寫(xiě)xml時(shí)數(shù)字類型千萬(wàn)別用 !=‘‘(不為空串)進(jìn)行判斷的示例詳解
這篇文章主要介紹了mybatis寫(xiě)xml時(shí)數(shù)字類型千萬(wàn)別用 !=‘‘(不為空串)進(jìn)行判斷的示例詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09分布式難題ElasticSearch解決大數(shù)據(jù)量檢索面試
這篇文章主要為大家介紹了分布式面試難題,ElasticSearch解決大數(shù)據(jù)量檢索的問(wèn)題分析回答,讓面試官無(wú)話可說(shuō),幫助大家實(shí)現(xiàn)面試開(kāi)薪自由2022-03-03Java設(shè)計(jì)模式之單例模式簡(jiǎn)介
這篇文章主要介紹了Java設(shè)計(jì)模式之單例模式簡(jiǎn)介,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)Java的小伙伴們有非常好的幫助,需要的朋友可以參考下2021-04-04Java設(shè)置請(qǐng)求響應(yīng)時(shí)間的多種實(shí)現(xiàn)方式
在前后端分離的開(kāi)發(fā)模式中,前端請(qǐng)求后端獲取數(shù)據(jù)時(shí),合理設(shè)置響應(yīng)時(shí)間(超時(shí)時(shí)間)是提升系統(tǒng)性能和用戶體驗(yàn)的關(guān)鍵,本文將深入探討如何在Java中設(shè)置請(qǐng)求的響應(yīng)時(shí)間,需要的朋友可以參考下2025-01-01springboot使用Logback把日志輸出到控制臺(tái)或輸出到文件
這篇文章給大家介紹springboot項(xiàng)目使用日志工具Logback把日志不僅輸出到控制臺(tái),也可以輸出到文件的操作方法,本文通過(guò)實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2020-10-10Java 微信公眾號(hào)開(kāi)發(fā)相關(guān)總結(jié)
公眾號(hào)作為主流的自媒體平臺(tái),有著不少人使用。這次以文本回復(fù)作為案例來(lái)講解Java相關(guān)的微信公眾號(hào)開(kāi)發(fā)2021-05-05Resilience4J通過(guò)yml設(shè)置circuitBreaker的方法
Resilience4j是一個(gè)輕量級(jí)、易于使用的容錯(cuò)庫(kù),其靈感來(lái)自Netflix Hystrix,但專為Java 8和函數(shù)式編程設(shè)計(jì),這篇文章主要介紹了Resilience4J通過(guò)yml設(shè)置circuitBreaker的方法,需要的朋友可以參考下2022-10-10利用反射獲取Java類中的靜態(tài)變量名及變量值的簡(jiǎn)單實(shí)例
下面小編就為大家?guī)?lái)一篇利用反射獲取Java類中的靜態(tài)變量名及變量值的簡(jiǎn)單實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-12-12