文档章节

SSL访问Https occur SSLProtocolException and Certific

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

红薯
2010/03/04
479
0
Nginx 1.3.2 开发版发布,还是没有 SPDY

Nginx 1.3.2 开发版发布了,下载地址: nginx-1.3.2 nginx/Windows-1.3.2 该版本改进记录: *) Change: the "single" parameter of the "keepalive" directive is now ignored. *) Change: ......

oschina
2012/06/27
1K
5
利用SSL/TLS中的SNI同一ip不同域名的F5vs配置解决方案

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

河北李晓东
2017/08/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

开发者和架构师之间最大的区别是什么?

1、开发者和架构师之间最大的区别是什么? 架构师和开发者一样,也经常写代码,简单的说,开发者和架构师之间最大的区别就是技术领导力。 软件架构师的角色需要理解最重要的架构驱动力是什么...

James-
9分钟前
0
0
java框架学习日志-4

补充一些spring配置文件的方法。 设置别名: <!--通过name直接设置别名--> <bean name="user2" class="cn.sxt.factory.UserDynamicFactory"> </bean> <!--有id的情况下也可以设置......

白话
12分钟前
0
0
20181213 上课截图

小丑鱼00
28分钟前
1
0
nginx+php-fpm配置后页面显示空白的解决方法以及用nginx和php-fpm解决“502 Bad Gateway”问题

https://stackoverflow.com/questions/15423500/nginx-showing-blank-php-pages For reference, I am attaching my location block for catching files with the .php extension: location ~......

Yao--靠自己
35分钟前
2
0
mac 没声音

somehow不时就会出现这种情况。之前都得重启。 其实可以直接在terminal里打以下命令: sudo kextunload /System/Library/Extensions/AppleHDA.kext sudo kextload /System/Library/Extension...

dubox
51分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部