当前位置: 首页 > wzjs >正文

常用的网站推广的方式方法发布悬赏任务的推广平台

常用的网站推广的方式方法,发布悬赏任务的推广平台,直播间挂人气自助网站,个性化网站建设开发https不支持SSLv3协议问题, 多种解决方案 文章目录 https不支持SSLv3协议问题, 多种解决方案报错原文 (No appropriate protocol )原因分析解决方案1: 网上大多数都是这么说的解决方案2: 调整项目https协议为 TLS1.2问题复现方式 报错原文 (No appropria…

https不支持SSLv3协议问题, 多种解决方案

文章目录

  • https不支持SSLv3协议问题, 多种解决方案
    • 报错原文 (No appropriate protocol )
    • 原因分析
    • 解决方案1: 网上大多数都是这么说的
    • 解决方案2: 调整项目https协议为 TLS1.2
    • 问题复现方式

报错原文 (No appropriate protocol )

javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)

翻译为: 没有合适的协议(协议被禁用或密码套件不合适)

Exception in thread "main" javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
at sun.security.ssl.HandshakeContext.<init>(HandshakeContext.java:171)
at sun.security.ssl.ClientHandshakeContext.<init>(ClientHandshakeContext.java:106)
at sun.security.ssl.TransportContext.kickstart(TransportContext.java:238)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:405)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:384)
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:587)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:197)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1584)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1512)
at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:352)
at com.dycjr.xiakuan.payweb.service.impl.SinglePayServiceImpl.main(SinglePayServiceImpl.java:481)进程已结束,退出代码1

原因分析

大概测试了下,如果项目使用的 https安全协议 < TLS1.2(比如 SSLv3) 并且 jdk版本 > 1.8.0_332 就会出现此问题。

高版本 jdk 现在用的 安全协议都是 TLSv1.3、TLSv1.2 默认已经禁用掉了 SSLv3协议

**解决方案大概分两种: **

  1. 强制开启jdk的sslv3协议 或者 降级jdk版本到 jdk 1.8.0_077
  2. 在项目中使用更新的https安全协议, 比如 TLSv3

很多时候遇到这种问题是因为https请求功能是三方(比如银行)提供好的,我们只能直接改, 可以考虑使用反射强制修改

解决方案1: 网上大多数都是这么说的

网上搜了下,对此问题基本都是修改jdk的, 然后需要重启对应的项目就好了

jdk降级这个方式这里就不说了 , 感兴趣的可以自行搜索, 通常项目里是不允许这么弄得

解决方案2: 调整项目https协议为 TLS1.2

我遇到的就是这种, https是三方jar包封装好的,无法更改协议版本

在项目启动的时候通过反射强行修改 SSLSocktFactory, 如下:

    public static void main(String[] args) {// ssl配置为 TLSv1.2allinpaySslConf();SpringApplication.run(PayWebApplication.class, args);System.out.println("============= start success ===============");System.out.println("user.dir = " + System.getProperty("user.dir"));}/*** jdk1.8_332 版本不支持SSLv3问题, 通过反射强行改为 TLSv1.2*/private static void allinpaySslConf(){try {SSLContext tlsv12 = SSLContext.getInstance("TLSv1.2");tlsv12.init((KeyManager[])null, null, (SecureRandom)null);ReflectUtil.setFieldValue(XmlTools.class, "sslFactory", tlsv12.getSocketFactory());} catch (Exception e) {e.printStackTrace();}}

问题复现方式

这里分享一个简单的复现问题的方式, 感兴趣的可以在 IDEA 下载两个jdk 试下

    @SneakyThrowspublic static void main(String[] args) {URL url = new URL("https://www.baidu.com");URLConnection conn = url.openConnection();conn.setDoInput(true);conn.setDoOutput(true);HttpsURLConnection httpsConn = (HttpsURLConnection)conn;httpsConn.setRequestMethod("POST");// sslv3 SSLContext sslV3 = SSLContext.getInstance("SSLv3");sslV3.init((KeyManager[])null, null, (SecureRandom)null);// tlsv2SSLContext tlsv12 = SSLContext.getInstance("TLSv1.2");tlsv12.init((KeyManager[])null, null, (SecureRandom)null);// ReflectUtil.setFieldValue(XmlTools.class, "sslFactory", tlsv12.getSocketFactory());// 这里修改具体的ssl版本 来复现问题// httpsConn.setSSLSocketFactory(sslV3.getSocketFactory());httpsConn.setSSLSocketFactory(XmlTools.getSSLSF());int responseCode = httpsConn.getResponseCode();System.out.println("responseCode = " + responseCode);}

jdk版本参考如下:

// 补充: 可以直接把三方发送https的类和包位置复制到项目目录中来覆盖, 然后做下调整。 这样安全性更高。

http://www.dtcms.com/wzjs/160778.html

相关文章:

  • 图片设计网站有哪些汕头seo托管
  • 厦门网站建设厦门seo搜索引擎优化怎么优化
  • 有教做素食的网站吗关键词在线试听
  • 网站里的滚动怎么做中山网站建设公司
  • 做的网站错位怎么办十大seo免费软件
  • 营口规划建设局网站广州最新疫情情况
  • 盐城市网站建设公司制作一个网站步骤
  • 哪个科技新闻网站好百度推广方式
  • 做爰真实网站百度权重4网站值多少钱
  • 阿里云服务器做网站django公司品牌宣传方案
  • 建设官方网站首页电脑优化工具
  • 网站建设推广型关键词搜索站长工具
  • 网络营销课程性质seo常见优化技术
  • 天津网站设计seo优化排名技术百度教程
  • 搜索不到的网站湖南网站建设加盟代理
  • 鞍山一般做一个网站需要多少钱百度云网盘资源搜索
  • 做趣味图形的网站搜索引擎是指什么
  • 手机网站一键生成appseo教程排名第一
  • wordpress管理网站想要导航页面推广app
  • 企业网站建设费用需要多少钱新闻10条摘抄大全
  • 国家住房和城乡建设部网站吧seo网站推广目的
  • 论坛类网站怎么建设360优化大师官方下载最新版
  • 素材网站有哪些杭州百度快照推广
  • 商务网站建设与维护(专21春)seo手机端优化
  • 海南建设网网站新闻头条免费下载安装
  • 琼海做网站口碑贵州seo技术查询
  • wordpress复制按钮网站快速优化排名方法
  • 南山做网站多少钱网站优化方案
  • 响应式网站建设推广百度推广图片
  • 找工程哪个平台最可靠seo关键词优化排名外包