HTTPS由于安全性,在目前的应用中越来越广泛

有很多APP存在安全性问题,对服务器证书验证不重视,使用默认证书跳过等

使用openssl可以很方便获取要访问网站的证书,如百度

openssl s_client -connect www.baidu.com:443

拷贝出里面的数组,就可以在程序中使用。如下


import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.security.KeyManagementException;
import java.security.KeyStore;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.Certificate;
import java.security.cert.CertificateException;
import java.security.cert.CertificateFactory;import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManagerFactory;public class HttpsTest {/*** * @return SSLSocketFactory* @throws CertificateException* @throws IOException* @throws KeyStoreException* @throws NoSuchAlgorithmException* @throws KeyManagementException*/public static SSLSocketFactory initSSLHttps() throws CertificateException,IOException, KeyStoreException, NoSuchAlgorithmException,KeyManagementException {// openssl s_client -connect www.baidu.com:443String baidu = "-----BEGIN CERTIFICATE-----\n"+ "MIIIdDCCB1ygAwIBAgIQRgvtzGxo+wBn8JgNuE2/gjANBgkqhkiG9w0BAQsFADB+\n"+ "MQswCQYDVQQGEwJVUzEdMBsGA1UEChMUU3ltYW50ZWMgQ29ycG9yYXRpb24xHzAd\n"+ "BgNVBAsTFlN5bWFudGVjIFRydXN0IE5ldHdvcmsxLzAtBgNVBAMTJlN5bWFudGVj\n"+ "IENsYXNzIDMgU2VjdXJlIFNlcnZlciBDQSAtIEc0MB4XDTE3MDYyOTAwMDAwMFoX\n"+ "DTE4MDgxNzIzNTk1OVowgagxCzAJBgNVBAYTAkNOMRAwDgYDVQQIDAdiZWlqaW5n\n"+ "MRAwDgYDVQQHDAdiZWlqaW5nMTkwNwYDVQQKDDBCZWlKaW5nIEJhaWR1IE5ldGNv\n"+ "bSBTY2llbmNlIFRlY2hub2xvZ3kgQ28uLCBMdGQxJjAkBgNVBAsMHXNlcnZpY2Ug\n"+ "b3BlcmF0aW9uIGRlcGFydG1lbnQuMRIwEAYDVQQDDAliYWlkdS5jb20wggEiMA0G\n"+ "CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDImQ8LQt6/ovSyE1jc5M7knA7yDHOb\n"+ "ZUA8OgG8ciml3aPKDbuVQ0JLcuFkRBb74nVxe9EAwgN7NMrSL0dSTl2pYonMfklj\n"+ "7ymfr+LKUigoO8So1XKUsntq6KU7/qXRI4Tpd9zoWoTXUSMgM3BvjN9tyows9GSm\n"+ "v2foMURsnO00az4YITnM2bVuklui6j4TfkRuA/uypcLPRrZM6XnxRvHrznsMCZ5N\n"+ "wqpOQeDQuQCGaFqkKPFlbi8Rb+LPFAICUmmqFplit6ac7gvQeLBN3BeJx1Pu4Jmg\n"+ "oSTPKU0OtRtQtuXaY6+oqpGGP9gqvE5eWYy2YPA2AeojmiNsSPrzf8bDAgMBAAGj\n"+ "ggTBMIIEvTCCAm8GA1UdEQSCAmYwggJiggsqLmJhaWR1LmNvbYIOKi5iYWlmdWJh\n"+ "by5jb22CEiouYmFpZHVjb250ZW50LmNvbYIRKi5iYWlkdXN0YXRpYy5jb22CDiou\n"+ "YmRzdGF0aWMuY29tggsqLmJkaW1nLmNvbYIMKi5iYWlmYWUuY29tggwqLmhhbzEy\n"+ "My5jb22CCyoubnVvbWkuY29tgg0qLmNodWFua2UuY29tgg0qLnRydXN0Z28uY29t\n"+ "gg4qLmJhaWR1YmNlLmNvbYIMKi5taXBjZG4uY29tgg4qLmJhaWR1cGNzLmNvbYIN\n"+ "Ki5iY2Vob3N0LmNvbYIMKi5haXBhZ2UuY29tggsqLmFpcGFnZS5jboILKi5kbG5l\n"+ "bC5jb22CDyouYmNlLmJhaWR1LmNvbYIQKi5leXVuLmJhaWR1LmNvbYIPKi5tYXAu\n"+ "YmFpZHUuY29tgg8qLm1iZC5iYWlkdS5jb22CECoubmV3cy5iYWlkdS5jb22CESou\n"+ "ZmFueWkuYmFpZHUuY29tgg4qLmltLmJhaWR1LmNvbYIQKi5zYWZlLmJhaWR1LmNv\n"+ "bYIRKi5zc2wyLmR1YXBwcy5jb22CCWJhaWR1LmNvbYIMYmFpZnViYW8uY29tggpi\n"+ "YWlmYWUuY29tggx3d3cuYmFpZHUuY26CEHd3dy5iYWlkdS5jb20uY26CEmNsaWNr\n"+ "LmhtLmJhaWR1LmNvbYIQbG9nLmhtLmJhaWR1LmNvbYIQY20ucG9zLmJhaWR1LmNv\n"+ "bYIQd24ucG9zLmJhaWR1LmNvbYIUdXBkYXRlLnBhbi5iYWlkdS5jb22CD21jdC55\n"+ "Lm51b21pLmNvbTAJBgNVHRMEAjAAMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAU\n"+ "BggrBgEFBQcDAQYIKwYBBQUHAwIwYQYDVR0gBFowWDBWBgZngQwBAgIwTDAjBggr\n"+ "BgEFBQcCARYXaHR0cHM6Ly9kLnN5bWNiLmNvbS9jcHMwJQYIKwYBBQUHAgIwGQwX\n"+ "aHR0cHM6Ly9kLnN5bWNiLmNvbS9ycGEwHwYDVR0jBBgwFoAUX2DPYZBV34RDFIpg\n"+ "KrL1evRDGO8wKwYDVR0fBCQwIjAgoB6gHIYaaHR0cDovL3NzLnN5bWNiLmNvbS9z\n"+ "cy5jcmwwVwYIKwYBBQUHAQEESzBJMB8GCCsGAQUFBzABhhNodHRwOi8vc3Muc3lt\n"+ "Y2QuY29tMCYGCCsGAQUFBzAChhpodHRwOi8vc3Muc3ltY2IuY29tL3NzLmNydDCC\n"+ "AQIGCisGAQQB1nkCBAIEgfMEgfAA7gB1AN3rHSt6DU+mIIuBrYFocH4ujp0B1VyI\n"+ "jT0RxM227L7MAAABXPLl8Q4AAAQDAEYwRAIgYmI+Xnom5nr+k+p8RW/BdqobpmTN\n"+ "ubZW8eM1DTueRfcCIAXdDURAie+w+eZMDfgxHlo/r9wZ8gpQVoTib5w3b/6+AHUA\n"+ "pLkJkLQYWBSHuxOizGdwCjw1mAT5G9+443fNDsgN3BAAAAFc8uXxRAAABAMARjBE\n"+ "AiA+PkSvZOvIBmxaBLXLceHH1NqW+Mcrz+xtXNmJOl2ElQIgfVeG4xeuWrb7bpoU\n"+ "smR+LStIG1TPCwimn3JRE3we/fYwDQYJKoZIhvcNAQELBQADggEBADjrCz8a7cax\n"+ "h7vpyuUFZ/fiKBHE7VLqfppgf3XYNBoqh21qM6gTGzdiSeZj+vx+KOUn38f080Rg\n"+ "N2aEkag3n03cufIXR8Yn8haXcusz5PONSlMQnN5rZBwpZ8obItiO8KGOh5lgHQ+s\n"+ "SloX/j8nDDCQgrNkcG2A78nUT+VxGGENxnPmqajP/O2h/kg02qjcnPoj6Elmm/At\n"+ "5dWWANX374yS7c0fgLZZ1mfZoIqooaRxsSJl5RzyRNU3Bzv5CZCJCGYFqC3RS28Q\n"+ "vTCjde7TMsAQiWkZ97IKlUMXdbHManm7K85aWcG4Wg8isr9d2GPUZYgcUSc8KfWY\n"+ "aP5MzoeU6ug=\n" + "-----END CERTIFICATE-----\n";CertificateFactory cf = CertificateFactory.getInstance("X.509");Certificate ca = cf.generateCertificate(new ByteArrayInputStream(baidu.getBytes()));KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());keystore.load(null, null);keystore.setCertificateEntry("baiducom", ca);TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());tmf.init(keystore);// Create an SSLContext that uses our TrustManagerSSLContext context = SSLContext.getInstance("TLS");context.init(null, tmf.getTrustManagers(), null);URL url = new URL("https://www.baidu.com");HttpsURLConnection urlConnection = (HttpsURLConnection) url.openConnection();urlConnection.setSSLSocketFactory(context.getSocketFactory());InputStream input = urlConnection.getInputStream();BufferedReader reader = new BufferedReader(new InputStreamReader(input,"UTF-8"));StringBuffer result = new StringBuffer();String line = "";while ((line = reader.readLine()) != null) {result.append(line);}System.out.print(result.toString());return context.getSocketFactory();}public static void main(String[] args) throws Exception {initSSLHttps();}
}

HttpsTest使用百度证书检验并访问百度相关推荐

  1. 网络编程知识预备(5) ——libcurl库简介及其编程访问百度首页

    本文为学习笔记,整合课程内容以及下列文章: 其中,libcurl函数库常用字段解读部分: 参考博文:原文地址 作者:冬冬他哥哥 目录 Libcurl库简介 Libcurl等三方库的通用编译方法 三方库 ...

  2. 从实例入手学习使用vue+axios配置代理进行跨域访问百度音乐API

    场景 如果要使用axios直接进行跨域访问是不可以的,这是就需要配置代理了,为什么要配置代理呢? 原因就是因为客户端请求服务端的数据是存在跨域问题的,而服务器和服务器之间可以相互请求数据,是没有跨域的 ...

  3. Android 通过 “隐式意图” 打开 系统的浏览器 访问 百度页面

    在MainActivity中,通过"隐式意图"打开系统的浏览器访问百度页面: MainActivity页面: package cn.lwx.openbrowser;import a ...

  4. Python—实训day2—爬虫案例1:访问百度贴吧

    2 爬虫案例1:访问百度贴吧 假设我们要访问的贴吧是:动漫吧 头几页的URL地址为: https://tieba.baidu.com/f?kw=%E5%8A%A8%E6%BC%AB&ie=ut ...

  5. 解决从其它搜索引擎不能直接访问百度页面的问题

    由于最近baidu和360又开始互咬了,从其它搜索引擎搜索到百度的结果时又变不能直接访问了,会出现如下界面. 需要手动点击这个链接才能访问,让人非常不爽.因此我写了一个chrome扩展解决这个问题,原 ...

  6. 用java自动化访问百度测试_java+eclipse+selenium+百度搜索设置自动化测试

    在eclipse中新建一个项目baidutest:再在src文件夹中新建一个包com.baidutest.homework:再在包中新建一个java类baidusetting,并设置为静态类:最后在项 ...

  7. 关于chrome浏览器不能正常访问百度的解决方法

    关于chrome浏览器不能正常访问百度的解决方法 最近一段时间,使用chrome的时候,经常会出现不能正常访问百度的问题,搞得我每次都想怒卸chrome,回归foxfire.以下是几种解决方案. 对于 ...

  8. 不能通过“www.baidu.com”访问百度解决方法

    不能通过网址"www.baidu.com"访问百度解决方法 我尝试了几种失败的方法 更改DNS,改为114.114.114.114,还有百度DNS 180.76.76.76 360 ...

  9. 浏览器访问百度www.baidu.com过程

    浏览器访问百度www.baidu.com过程 1.先要解析出baidu.com对应的ip地址     1.先知道默认网关的mac         1.使用arp获取默认网关的mac地址     2.组 ...

最新文章

  1. openSUSE设置为路由服务器
  2. 2020人工智能应用挑战赛前瞻 | 专家委员会强大阵容,震撼发布!
  3. CentOS 7在虚拟机上安装之后没有桌面问题
  4. MVC TIP7:自定义IHttpModule、IRouteHandler实现路由调试
  5. 数据型驱动风控有什么内容?从蚂蚁借呗与花呗谈起~
  6. MongoDB中对象反序列化的一个小问题
  7. SMART PLC PID算法基本解析(附公式)
  8. 天载股票开户美股再度创出新高
  9. 为什么要发布海外新闻稿,海外稿件怎么写
  10. WindowsCluster 由于在更新安全DNS区域时访问被拒绝,群集网络资源无法注册一个或多个关联的DNS名称
  11. 【Linux】Ubuntu运行环境搭建
  12. Linux服务器上的mongodb:/lib64/libc.so.6: version `GLIBC_2.14‘ not found (required by /app/hems/mong)
  13. 论文阅读:预训练模型:过去,现在和未来 Pre-Trained Models: Past, Present and Future(上)
  14. gitlab ip变更runner拉取代码失败、shell启动springboot项目启动起来。
  15. 十月,再见;你好,十一月
  16. 如果你是12306网站架构师,你会如何设计网站的软件架构和硬件系统架构?
  17. 安装anaconda时需要卸载python么_怎么卸载python 安装 anaconda
  18. SAS聚类分析(系统聚类cluster,动态聚类fastclus,变量聚类varclus)
  19. kali linux 2018.1版下安装w3af 【超详细】
  20. 盒格速 M 2022风口项目电商新玩法

热门文章

  1. 头部企业走入无人区,国产数智化厂商挑大梁
  2. 弘辽科技:店铺陷入瓶颈期无法突破怎么办呢?
  3. cmd mysql 指令_MySQL简单指令(CMD)
  4. 串口及串口通信硬件详解UART,I2C,SPI,USB
  5. 技术管理者的 4 个基本思考点
  6. 计算机专业公共基础课,非计算机专业计算机公共基础课程中计算思维体现的必要性...
  7. Web前端开发精品课HTML CSS JavaScript基础教程第四章课后编程题答案
  8. 【Unity】AVPro使用踩坑,编辑器模式使用视频播放正常,打包后视频无法播放的问题
  9. DHCP配置及相关命令
  10. Cacls and Icacls