文档章节

SSL访问Https occur SSLProtocolException and Certific

北风刮的不认真了
 北风刮的不认真了
发布于 2014/11/19 22:49
字数 315
阅读 240
收藏 0

行业解决方案、产品招募中!想赚钱就来传!>>>

最近在调用微信公众平台高级群发接口之一:

https://file.api.weixin.qq.com/cgi-bin/media/uploadvideo?access_token=ACCESS_TOKEN 时,https访问抛出异常:

javax.net.ssl.SSLProtocolException: handshake alert: unrecognized_name

异常中出现关键字:unrecognized 未被承认的name。

google之,处理办法,代码加入:

//bug fiexd for: javax.net.ssl.SSLProtocolException: handshake alert: unrecognized_name  
System.setProperty ("jsse.enableSNIExtension", "false");

再次调用该接口,抛出新的异常:

javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No subject alternative DNS name matching file.api.weixin.qq.com found.

继续处理,代码加入:

 URL url = new URL(requestUrl);
 httpUrlConn = (HttpsURLConnection)url.openConnection();
 httpUrlConn.setSSLSocketFactory(ssf);

 //bug fixed for: java.security.cert.CertificateException: No subject alternative DNS name matching
 httpUrlConn.setHostnameVerifier(new CustomizedHostnameVerifier());

其中CustomizedHostnameVerifier类如下:

import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.SSLSession;


/**
 * HostnameVerifier
 * bug fixed : <http://iteches.com/archives/45015>
 * @author will_awoke
 * @version 2014-8-15
 * @see CustomizedHostnameVerifier
 * @since
 */
public class CustomizedHostnameVerifier implements HostnameVerifier
{

    @Override
    public boolean verify(String arg0, SSLSession arg1)
    {
        return true;
    }

}

原因

and then apply this class to your single SSL connection
HttpsURLConnection connection = (HttpsURLConnection) new URL("
https://url").openConnection();
connection.setHostnameVerifier(new CustomizedHostNameVerifier());
or apply to all SLL connection
HttpsURLConnection.setDefaultHostnameVerifier(new CustomizedHostnameVerifier());
However this method might pose a security risk because basically we don’t verify the hostname anymore. The server may use other website’s certificate and the program will still accept it.

简而言之:

因为微信的这个接口是未认证https不安全的,所有需要代码中需要dont verify。



北风刮的不认真了

北风刮的不认真了

粉丝 40
博文 56
码字总数 33609
作品 1
朝阳
后端工程师
私信 提问
加载中
请先登录后再评论。
访问安全控制解决方案

本文是《轻量级 Java Web 框架架构设计》的系列博文。 今天想和大家简单的分享一下,在 Smart 中是如何做到访问安全控制的。也就是说,当没有登录或 Session 过期时所做的操作,会自动退回到...

黄勇
2013/11/03
3.4K
6
HTTPS切换工具--HttpsSwitcher

HttpsSwitcher 是一个帮你进行 HTTPS 切换的 Chrome 插件,本工具可以帮你尝试使用https打开指定的域名,点击本插件的浏览器图标后会自动切换本标 签页的http/https状态,并且会记住你的选择...

leehorsley
2013/01/26
924
0
OpenConnect VPN 服务器--ocserv

ocserv 全称是 OpenConnect VPN Server。实现了 AnyConnect SSL VPN 协议,兼容 OpenConnection VPN 客户端。特点是体积小、安全和可配置。依赖标准协议如 TLS 1.2 和数据报文 TLS。...

匿名
2013/03/06
8.7K
0
Hbase的Windows访问接口库--libhbase4win

libhbase4win是基于Thrift的Hbase的Windows访问接口库,开发工具使用VS2010,Hadoop版本为1.1.0,Hbase版本为0.94.0,thrift版本0.9.0,执行编译需要boost和thrift支持。...

张子良
2013/03/06
757
0
开源数据访问组件--Smark.Data

Smark.Data是基于Ado.net实现的数据访问组件,提供基于强类型的查询表达式进行灵活的数据查询,统计,修改和删除等操作;采用基于条件驱动的操作模式,使数据操作更简单轻松;内部通过标准SQL...

泥水佬
2013/03/12
2.5K
0

没有更多内容

加载失败,请刷新页面

加载更多

鼠年吉祥,新年快乐

今天是大年初一,很高兴在过去一年中有您的陪伴,希望大家在新的一年中平安健康,一切顺利,加油。 邓飞 202001250539 于后园爷爷家 本文分享自微信公众号 - 育种数据分析之放飞自我(R-bre...

育种数据分析之放飞自
01/25
0
0
不烧脑、不耗时、全免费,带你0基础学Python

文末有福利 Python是人工智能的未来。 最近,电气和电子工程师协会( IEEE)发布了顶级编程语言交互排行榜:Python高居首位。 而且随着大数据和人工智能的发展,Python受到了越来越多程序员的...

kunjian
今天
0
0
R语言入门系列之一

写在前面 计算机语言的学习并不困难,关键是一定要由浅入深的实际操作练习。也许最开始的比较简单,学习者一带而过没有实际操作,之后的进一步学习很可能会陷入不知所云的困境,实际操作所带...

SYSU星空
2019/02/17
0
0
Istio-本地运行

概述 基于上一篇 Istio1.6-二进制编译和本地运行 但集中在 pilot-discovery 和 envoy(pilot-agent 大部分功能仅作为 envoy 的 watchdog,略过) NOTE: 以下的描述,相对路径都基于目录 /g...

深蓝苹果
33分钟前
9
0
基于Linux、C、JSON、Socket的编程实例(附代码)

点击上方「嵌入式大杂烩」,选择「置顶公众号」第一时间阅读编程笔记! 一、前言 之前在学习socket编程的时候有分享一个基于控制台的简易天气客户端的实现,当时提供的是window下的代码,最近...

学以解忧
2019/10/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部