java.security.cert.CertificateException: No name matching https证书验证不通过
1、报错信息
1
|
java.security.cert.CertificateException: No name matching api.weibo.com found; nested exception is javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No name matching api.weibo.com found
|
原因:在调用api.weibo.com的时候,我们使用的是https的方式,正常情况下应该是使用api.weibo.com的证书,但由于某些原因,我们只能使用自己的证书,导致在验证证书的时候,就报了这个错误。
解决的办法:忽略服务端和客户端的证书校验即可。java 提供的相关的类。
2、具体实现方式
通过重写TrustManager的checkClientTrusted(检查客户端证书信任)和checkServerTrusted(检查服务端证书验证)。
以及HostnameVerifier的verify(校验)方法即可取消对证书的所有验证。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.net.ssl.*;
import java.io.IOException;
import java.net.URL;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
public final class DisableSSLCertificateCheckUtil {
private static final Logger LOGGER = LoggerFactory.getLogger(DisableSSLCertificateCheckUtil. class );
/**
* Prevent instantiation of utility class.
*/
private DisableSSLCertificateCheckUtil() {
}
/**
* Disable trust checks for SSL connections.
*/
public static void disableChecks() {
try {
new URL( "https://0.0.0.0/" ).getContent();
} catch (IOException e) {
// This invocation will always fail, but it will register the
// default SSL provider to the URL class.
}
try {
SSLContext sslc;
sslc = SSLContext.getInstance( "TLS" );
TrustManager[] trustManagerArray = { new X509TrustManager() {
@Override
public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
@Override
public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
@Override
public X509Certificate[] getAcceptedIssuers() {
return new X509Certificate[ 0 ];
}
}};
sslc.init( null , trustManagerArray, null );
HttpsURLConnection.setDefaultSSLSocketFactory(sslc.getSocketFactory());
HttpsURLConnection.setDefaultHostnameVerifier( new HostnameVerifier() {
@Override
public boolean verify(String s, SSLSession sslSession) {
return true ;
}
});
} catch (Exception e) {
LOGGER.error( "error msg:{}" , e);
throw new IllegalArgumentException( "证书校验异常!" );
}
}
}
|
调用方式:
1
|
DisableSSLCertificateCheckUtil.disableChecks();
|
影响的范围:将会影响整个tomcat里面对证书的验证。即通过tomcat里面的其他项目虽然没有执行这一段代码但是也同样会忽略证书的验证。
影响的时间:执行这段代码之后的所有时间都生效。
原文地址:http://www.importnew.com/24192.html
java.security.cert.CertificateException: No name matching https证书验证不通过相关推荐
- java.security.cert.CertificateException: No name matching IP found
java.security.cert.CertificateException: No name matching localhost found 解释:安全证书异常,IP地址找不到 解决方案如下:程 ...
- CAS部署错误3:java.security.cert.CertificateException: No name match
javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No name matching casse ...
- sqlserver 项目中连接失败,驱动程序无法通过使用安全套接字层(SSL) 与 java.security.cert.CertificateException
问题一:驱动程序无法通过使用安全套接字层(SSL) 注意: 有两个 jre 文件夹,一个是 jdk内包含的,一个是 单独的 jre 解决办法:把jdk下面的\jre\lib\security下面的ja ...
- java.security.cert.CertificateException: X.509 not found,X.509证书找不到
对接支付宝转账接口,本地测试没有问题,部署到服务器就报错. 报错代码: org.apache.catalina.loader.WebappClassLoaderBase.checkStateForRe ...
- java证书验证失败_解决https证书验证不通过的问题
1.报错信息 java.security.cert.CertificateException: No name matching api.weibo.com found; nested excepti ...
- Caused by: java.security.cert.CertPathValidatorException: timestamp check failed
客户端在连接Server端https的时候出现了 以下错误, 12-27 17:52:45.976: W/System.err(10361): Caused by: java.security.cer ...
- java.security.cert.Certificate:No subject alternative DNS name matching api.exmail.qq.com found.解决方法
工作中使用https请求,本地调用正常,放到服务器端运行失败,报错为java.security.cert.Certificate:No subject alternative DNS name mat ...
- imageloader 的 java.security.cert.CertPathValidatorException
最近使用imageloader 发现ssl问题 (java.security.cert.CertPathValidatorException) 网上找了个方法,亲测通过,如下: universalim ...
- java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
Android 忽略Https请求认证 新建一个工具类 package com.gbom.vms_mcu.util;import java.security.SecureRandom; import ...
最新文章
- 医院计算机网络安全宣教,医院网络安全及解决方案
- java gzip 多个文件_Java Zip多文件压缩和 GZIP压缩
- “约见”面试官系列之常见面试题第三十二篇之async和await(建议收藏)
- jbutton添加点击事件_electron-vue自定义边框后点击事件失效问题
- 遗传算法编码方式整数编码_如何编码卫星算法并从头开始烹制西班牙海鲜饭
- SharePoint2007安装图文详解四:安装.NET Framework 3.0和SharePoint 2007
- 第008讲 div css开山篇
- 前端基础--jquery
- Sprd平台添加Camera驱动(SL8521E/SC9820E)
- oracle 11.2.0.3.0 client下载,oracle64位客户端 Instant Client
- 栅栏密码(Fence crypto)
- UEFI学习——在qemu上读取设备PCI信息
- 六种Web身份验证方法比较和Flask示例代码
- 基于内容的垃圾邮件过滤
- extjs3.0与extjs4.0区别
- matlab output()函数,matlab 函数y=f(input,output)该如何实现?
- 怎么给ChemDraw反应式添加分数系数
- 如何做好网站SEO优化,网站SEO关键词优化的5个技巧
- 计算机学院职业规划大赛策划书,大学生职业生涯规划大赛策划书(策划书范文).doc...
- 妙语佳句 In English