Java爬虫--Https绕过证书

news/2024/7/19 11:29:15 标签: java, 爬虫, 操作系统

  https网站服务器都是有证书的。 是由网站自己的服务器签发的,并不被浏览器或操作系统广泛接受。

  在使用CloseableHttpClient时经常遇到证书错误(知乎的网站就是这样)

  现在需要SSL绕过证书,下面直接贴出代码,调用时只需要在发送请求后  new  HttpsBerBer(文件的字节码) ; 

 1 import javax.net.ssl.HostnameVerifier;
 2 import javax.net.ssl.HttpsURLConnection;
 3 import javax.net.ssl.SSLSession;
 4 import java.util.logging.Logger;
 5 
 6 public class HttpsBerBer {
 7     public HttpsBerBer(String name) throws Exception {
 8         logger = Logger.getLogger(name);
 9         trustAllHttpsCertificates();
10         HostnameVerifier hv = new HostnameVerifier() {
11             public boolean verify(String urlHostName, SSLSession session) {
12                 logger.info("Warning: URL Host: " + urlHostName + " vs. " + session.getPeerHost());
13                 return true;
14             }
15         };
16         HttpsURLConnection.setDefaultHostnameVerifier(hv);
17     }
18     private static Logger logger ;
19     private static void trustAllHttpsCertificates() throws Exception {
20         javax.net.ssl.TrustManager[] trustAllCerts = new javax.net.ssl.TrustManager[1];
21         javax.net.ssl.TrustManager tm = new miTM();
22         trustAllCerts[0] = tm;
23         javax.net.ssl.SSLContext sc = javax.net.ssl.SSLContext
24                 .getInstance("SSL");
25         sc.init(null, trustAllCerts, null);
26         javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(sc
27                 .getSocketFactory());
28     }
29     static class miTM implements javax.net.ssl.TrustManager,
30             javax.net.ssl.X509TrustManager {
31         public java.security.cert.X509Certificate[] getAcceptedIssuers() {
32             return null;
33         }
34 
35         public boolean isServerTrusted(
36                 java.security.cert.X509Certificate[] certs) {
37             return true;
38         }
39 
40         public boolean isClientTrusted(
41                 java.security.cert.X509Certificate[] certs) {
42             return true;
43         }
44 
45         public void checkServerTrusted(
46                 java.security.cert.X509Certificate[] certs, String authType)
47                 throws java.security.cert.CertificateException {
48             return;
49         }
50 
51         public void checkClientTrusted(
52                 java.security.cert.X509Certificate[] certs, String authType)
53                 throws java.security.cert.CertificateException {
54             return;
55         }
56     }
57 }

  

     


http://www.niftyadmin.cn/n/1496393.html

相关文章

怎样把html的table上边框变窄,[转]HTML中表格table边框border(1px还嫌粗)的解决方案:...

第一种方法:1、将table的属性设置为:BORDER0 、cellspacing1 ;2、设置table的背景色为即你要设置的table的边框颜色;3、设置所有td背景色为#ffffff白色;这样,就大功告成了。第二种方法:1、设置B…

利用uWSGI和nginx进行服务器部署

搭建服务器虚拟环境 1)在本机进入虚拟环境,执行命令导出当前需要的所有包。 pip freeze > plist.txt2)通过ftp软件将项目代码和plist.txt文件上传到服务器。 3)创建虚拟环境,在虚拟环境上安装包。 mkvirtualenv 虚拟…

GridLayoutFactory和GridDataFactory

我写的SWT程序里用到layout的地方大部分都是GridLayout,今天才发现原来从eclipse 3.2开始就有了这两个方便使的类:GridLayoutFactory和GridDataFactory。特别是GridDataFactory,以前要用至少三行的代码: GridData gd new GridDat…

html音乐播放器 频谱,HTML5 Canvas 实现简易 绘制音乐环形频谱图

0.启发在B站我们有很多的小伙伴们应该都看到过用AE做的可视化音乐播放器播放音乐的视频,看着特别酷炫带感有木有。B站截图B站截图B站截图所以今天我就用 Canvas 做个简单 环形频谱图。那么~ ヾ(o・ω・)ノ 开始吧!1.首先绘…

Android View 测量机制

Android 中 View 的测量机制是 View 渲染机制的一个重要过程,理解 View 的测量机制和流程有利于我们加深对 View 渲染机制的理解、提高自定义 View 的能力。 View 的测量机制主要涉及到 MeasureSpec、View 的测量 和 ViewGroup 的测量 和这三个知识点,下…

计算机专业过年回家,回家过年的温暖唯美句子 描写过年回家的优美句子

1、离家的你,风也过,雨也走,亦有喜,亦有悲,酸也品,甜也尝,奋斗一年实在不易,佳节到了家人盼归,祝你坐上顺风车,归途交好运,平安到家乡&#xff0c…

如何用Tkinter写个计算器

上机实践课程开始了,嗯,老师来了之后念了下PPT,然后说:开始做吧......... ennnn........就先别管老师怎么教了,PPT标注了可以不限语言 然后就开始了Python的GUI之路,以前没接触过PYthon的可视化界面(虽然这样很不明智) 但是现在做…

计算机协会是学什么的,计算机协会学年工作计划

计算机协会学年工作计划工作指导方针以校团委的社团工作指导意见为方针,严格遵守校社团联合会的各项规定,参照《社团评比标准》文件认真管理社团。本学期由于是大学生计算机协会成立的重要一年,所以,本学期主要工作重点将放在社团…