jsoup访问https网址异常SSLHandshakeException

jsoup访问https网址异常SSLHandshakeException

icomment项目中有一个获取指定url页面的编码格式的方法,jsoup版本jsoup-1.8.1.jar。当jdk1.8时获取没有问题,今天将jdk版本改为1.6获取失败。

异常信息:

1
javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No subject alternative DNS name matching mobile.pconline.com.cn found.

解决方法:

  • 升级jsoup版本 1.9.x
  • 设置不验证SSL.validateTLSCertificates(false)

代码示例:

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
package cn.pconline.activity.util;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

/**
* Created by a on 2017/7/24.
*/
public class JsoupUtil {
/**
* 根据链接返回该页面的编码格式
*
* @param url
* @return
*/
public static String getEncodeForUrl(String url, String proxyHost, String proxyPort) {
String encode = null;
try {
if (null != proxyHost && null != proxyPort) {
System.getProperties().setProperty("http.proxyHost", proxyHost);
System.getProperties().setProperty("http.proxyPort", proxyPort);
}
/**
* 升级jsoup版本
* 设置不验证SSL.validateTLSCertificates(false)
* javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No subject alternative DNS name matching mobile.pconline.com.cn found.
*/
Document doc = Jsoup.connect(url).validateTLSCertificates(false).get();
Elements meta = doc.select("meta[charset]");
for (Element element : meta) {
encode = element.attr("charset");
}
if (null == encode) {
meta = doc.select("meta[http-equiv=\"Content-Type\"]");
for (Element element : meta) {
encode = element.attr("content");
if (encode.toLowerCase().indexOf("utf-8") > -1) {
encode = "UTF-8";
} else if (encode.toLowerCase().indexOf("gb2312") > -1) {
encode = "GB2312";
} else if (encode.toLowerCase().indexOf("iso-8859-1") > -1) {
encode = "ISO-8859-1";
}
}
}
} catch (Exception e) {
e.printStackTrace();
return "GBK";
}
return encode.toUpperCase();
}
}

—- 2019年7月15日22:16:37

补充:在和同事联测时发现了一个神奇的现象。

  • 这样的时候没有问题

image

  • 这样就有问题

image

这样更加佐证了1.6编译存在问题,具体原因还说不清楚。

参考链接:
https://www.jianshu.com/p/cd43ce78d34c
https://blog.csdn.net/phone13144830339/article/details/80332851
http://landcareweb.com/questions/22250/ru-he-shi-yong-jsouptong-guo-httpslian-jie

-------------已经触及底线 感谢您的阅读-------------

本文标题:jsoup访问https网址异常SSLHandshakeException

文章作者:趙小傑~~

发布时间:2019年07月10日 - 11:30:00

最后更新:2019年07月26日 - 23:32:12

原始链接:https://cnsyear.com/posts/268f6097.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

0%