博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SSL访问Https occur SSLProtocolException and Certific
阅读量:6281 次
发布时间:2019-06-22

本文共 1805 字,大约阅读时间需要 6 分钟。

hot3.png

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

 时,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 : 
 * @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。19224939_VR2l.jpg

转载于:https://my.oschina.net/northerSong/blog/346563

你可能感兴趣的文章
iOS BLE 开发小记[4] 如何实现 CoreBluetooth 后台运行模式
查看>>
Item 23 不要在代码中使用新的原生态类型(raw type)
查看>>
为网页添加留言功能
查看>>
JavaScript—数组(17)
查看>>
Android 密钥保护和 C/S 网络传输安全理论指南
查看>>
以太坊ERC20代币合约优化版
查看>>
Why I Began
查看>>
同一台电脑上Windows 7和Ubuntu 14.04的CPU温度和GPU温度对比
查看>>
js数组的操作
查看>>
springmvc Could not write content: No serializer
查看>>
Python系语言发展综述
查看>>
新手 开博
查看>>
借助开源工具高效完成Java应用的运行分析
查看>>
163 yum
查看>>
第三章:Shiro的配置——深入浅出学Shiro细粒度权限开发框架
查看>>
80后创业的经验谈(转,朴实但实用!推荐)
查看>>
让Windows图片查看器和windows资源管理器显示WebP格式
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
vim使用点滴
查看>>