文档章节

SSL访问Https occur SSLProtocolException and Certific

北风刮的不认真了
 北风刮的不认真了
发布于 2014/11/19 22:49
字数 315
阅读 57
收藏 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。



本文转载自:http://blog.csdn.net/will_awoke/article/details/38587467

共有 人打赏支持
北风刮的不认真了

北风刮的不认真了

粉丝 30
博文 51
码字总数 24741
作品 1
朝阳
后端工程师
System.PlatformNotSupportedException: The handler does not support client authentication certific...

NetCore发布在CentOS上,使用https的时候会报错 网上搜了一下,参考文档的基础上小的调整。基本操作如下: yum update yum install openssl-devel gcc wget https://curl.haxx.se/download/...

voxer
08/16
0
0
Nginx 1.11.9 发布,Bug 修复版本

Nginx 1.11.9 发布了,该版本主要是 Bug 修复,包含如下 Bug: *) Bugfix: nginx might hog CPU when using the stream module; the bug had appeared in 1.11.5. *) Bugfix: EXTERNAL authe......

红薯
2017/01/25
773
1
Nginx 0.8.34 发布

改进内容: ) Bugfix: nginx did not support all ciphers and digests used in client certificates. ) Bugfix: nginx cached incorrectly FastCGI responses if there was large stderr ou......

红薯
2010/03/04
477
0
利用SSL/TLS中的SNI同一ip不同域名的F5vs配置解决方案

前言: 在搭建支持HTTPS的前端代理服务器时候,通常会遇到让人头痛的证书问题。根据HTTPS的工作原理,浏览器在访问一个HTTPS站点时,先与服务器建立SSL连接,建立连接的第一步就是请求服务器...

河北李晓东
2017/08/23
0
0
curl 命令详解

curl 命令详解 一:curl简介及语法 curl是一个访问url的工具,可以用它构造http request报文,且可以解析服务器返回的http response,额外还支持cookie特性,可以用curl完成web浏览器的基本功...

wx5922e1cc2aa76
01/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下单接口调优实战,性能提高10倍

概述 最近公司的下单接口有些慢,老板担心无法支撑双11,想让我优化一把,但是前提是不允许大改,因为下单接口太复杂了,如果改动太大,怕有风险。另外开发成本和测试成本也非常大。对于这种...

Sam哥哥聊技术
13分钟前
0
0
rabbitMQ的安装和配置

在Windows下进行rabbitMQ的安装 第一步:软件下载 在安装rabbitMQ之前,需要先安装Erlang。 Erlang官网:http://www.erlang.org/downloads rabbitMQ官网:http://www.rabbitmq.com/download....

狼王黄师傅
32分钟前
0
0
SAP产品的Field Extensibility

SAP开发人员的工作职责,除了实现软件的功能性需求外,还会花费相当的精力实现一些非功能性需求,来满足所谓的SAP Product Standard(产品标准)。这些产品标准,包含在SAP项目实施中大显身手...

JerryWang_SAP
38分钟前
0
0
Vue-Element-Upload

记录一下文件上传封装Js 代码示例 封装:uploadFile.vue <template> <el-upload v-model="attachment" ref="upload" class="upload-demo" :action="uploadUrl" ......

华山猛男
45分钟前
2
0
AWVS破解及使用手册

1.安装 因为是windows软件,比较简单,此部分略: 破解插件下载: 链接: https://pan.baidu.com/s/1x9LK9F3KvqDgTvXDjoSZnQ 提取码: 7k4u 2.创建扫描目标 2-1.Targets->Add Target 2-2.对话框...

硅谷课堂
47分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部