CloseableHttpClient加载证书来访问https网站

news/2024/5/15 9:10:00/文章来源:https://blog.csdn.net/weixin_33720078/article/details/91662476

为什么80%的码农都做不了架构师?>>>   hot3.png

         对安全性有要求的网站一般使用https来加密传输的请求和响应。https离不开证书,关于证书不在多说。Apache的HttpClient支持https,

下面是官方的样例程序,程序中使用了my.store这个文件,

这个文件不是网站的证书,而是一份包含自己密码的自己的证书库。这个文件是需要自己生成的,使用jdk中的keytool命令可以很方便的生成my.store文件。步骤如下(以支付宝为例):

  1. 浏览器(以chrome为例)访问https://www.alipay.com/,点击域名左侧的小锁,可以查看支付宝的证书信息


  2. 将支付包的证书信息导出,证书格式有很多中,der、cer等。随便选择即可。

  3. 命令行或者shell执行 keytool     -import -alias "my alipay cert" -file www.alipay.com.cert     -keystore my.store,

如果keytool命令不识别,去检查一下jdk的环境变量是否设置正确。”my alipay cert”是个别名,随便取。“www.alipay.com.cert”这个文件就是从浏览器中导出的支付宝的证书。

“my.store”是生成的自己 的证书库文件。回车执行,效果如下:



OK,现在可以执行下面的代码了:

    package com.yeetrack.httpclient;

    /**

    * Created with IntelliJ IDEA.

    * User: victor

    * Date: 13-10-11

    * Time: 下午3:09

    * To change this template use File | Settings | File Templates.

    */

    import java.io.File;

    import java.io.FileInputStream;

    import java.security.KeyStore;

    import javax.net.ssl.SSLContext;

    import org.apache.http.HttpEntity;

    import org.apache.http.client.methods.CloseableHttpResponse;

    import org.apache.http.client.methods.HttpGet;

    import org.apache.http.conn.ssl.SSLContexts;

    import org.apache.http.conn.ssl.SSLConnectionSocketFactory;

    import org.apache.http.impl.client.CloseableHttpClient;

    import org.apache.http.impl.client.HttpClients;

    import org.apache.http.util.EntityUtils;

 

    /**

    * 代码展示了如果使用ssl context创建安全socket连接

    */

    public class ClientCustomSSL {

        public final static void main(String[] args) throws Exception {

            KeyStore trustStore  = KeyStore.getInstance(KeyStore.getDefaultType());

            //加载证书文件

            FileInputStream instream = new FileInputStream(new File("/home/victor/my.store"));

            try {

                trustStore.load(instream, "mypassword".toCharArray());

            } finally {

                instream.close();

            }

            SSLContext sslcontext = SSLContexts.custom().loadTrustMaterial(trustStore).build();

            SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslcontext,

                    SSLConnectionSocketFactory.BROWSER_COMPATIBLE_HOSTNAME_VERIFIER);

            CloseableHttpClient httpclient = HttpClients.custom()

                    .setSSLSocketFactory(sslsf)

                    .build();

            try

            {

                //访问支付宝

                HttpGet httpget = new HttpGet("https://www.alipay.com/");

                System.out.println("executing request" + httpget.getRequestLine());

                CloseableHttpResponse response = httpclient.execute(httpget);

                try {

                    HttpEntity entity = response.getEntity();

                    System.out.println("----------------------------------------");

                    System.out.println(response.getStatusLine());

                    if (entity != null) {

                        System.out.println(EntityUtils.toString(entity));

                    }

                } finally {

                    response.close();

                }

            } finally {

                httpclient.close();

            }

        }

    }

转载于:https://my.oschina.net/gehui/blog/490108

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_712313.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WordPress Platinum SEO插件跨站脚本漏洞

漏洞名称:WordPress Platinum SEO插件跨站脚本漏洞CNNVD编号:CNNVD-201309-398发布时间:2013-09-24更新时间:2013-09-24危害等级:中危 漏洞类型:跨站脚本威胁类型:远程CVE编号:CVE-…

[转载]网站分析的最基本度量(3)——网站分析工具如何辨别UV

【转载自】http://www.chinawebanalytics.cn/%E7%BD%91%E7%AB%99%E5%88%86%E6%9E%90%E7%9A%84%E6%9C%80%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5%EF%BC%883%EF%BC%89%E2%80%94%E2%80%94%E7%BD%91%E7%AB%99%E5%88%86%E6%9E%90%E5%B7%A5%E5%85%B7%E5%A6%82%E4%BD%95/  在关于UV的上…

大型网站架构系列:负载均衡详解(4)

原文:大型网站架构系列:负载均衡详解(4)本文是负载均衡详解的第四篇,主要介绍了LVS的三种请求转发模式和八种负载均衡算法,以及Haproxy的特点和负载均衡算法。具体参考文章,详见最后的链接。 三、LVS负载均…

MySQL百万级高并发网站优化

为什么80%的码农都做不了架构师?>>> 一网站以下简称A站,这A站在年后流量猛增从一天的七八十万猛跑到了好几百万的IP,一天下来接近一千万的PV让整个服务器在高压下超负荷的工作着,时不时的服务就出现宕机。 最首先反映…

白山搜索引擎优化收费_在网络推广中,SEO排名优化是成本最低的方式

互联网时代企业不得不面对的是互联网对企业的冲击,利用互联网做推广,对于企业来说是一个很好的选择,毕竟人们已经习惯了互联网的使用。 然后,只要有人通过互联网寻找信息,就有人通过互联网推广信息。 其中最具代表性的…

另类网页设计:30个复古怀旧风格的网站作品

复古怀旧风格的网页设计是一种独特的网页设计模式。在过去的几年里,我们看到很多复古设计的例子,其中的一些看起来真的很不错,并提供出色的用户体验。当然,复古设计不是适合任何类型的网站,设计必须是故事的一部分并有…

移动一个网站集所使用的内容数据库

在默认的情况下,每个SharePoint Web应用程序只会使用一个内容数据库(Content Database)。随着在这个Web应用程序中创建的网站集越来越多,或者网站集中的数据越来越多,这个内容数据库也在不断的增大。 也许是为了提高性能,也许是原…

linux系统入门命令大全,Linux常用命令5 - Linux 入门常用命令_Linux教程_Linux公社-Linux系统门户网站...

Linux与用户有关的命令passwd命令出于系统安全考虑,Linux系统中的每一个用户除了有其用户名外,还有其对应的用户口令。因此使用useradd命令增加时,还需使用passwd命令为每一位新增加的用户设置口令;用户以后还可以随时用passwd命令…

读《高性能网站建设指南》有感

这本书最大的特点是把管理人员和技术人员从传统的思维模式中解放出来,对于大多数管理人员和技术人员来说当谈到高性能网站和性能瓶颈时,总是习惯从系统硬件、网络、数据库、中间件、系统架构等方面去思考问题,诚然这些是至关重要的&#xff0…

网站设计者:提高网页打开速度的一些小技巧

互联网带宽越来越宽,似乎让网页的加载速度得到了质的飞跃。其实不然,因为随着带宽的提高,网页上的对象也越来越多,因此加快网页打开速度还是一个重要的课题。加快网页的打开速度,有三个路径,一是提高网络带…

extjs 网站首页table布局,秀一下

用extjs做首页,布局是最难的,我参考网上发挥的,看看吧。呵呵 这个只是首页的中间部分,东、西、南、北都还有东西的,只是没有截图下来。(其中三个板块样式应该是一样的,这里为了显示多样化。所以…

springboot做网站_Github点赞接近10万的SpringBoot学习教程+实战推荐!牛批!

很明显的一个现象,除了一些老项目,现在 Java 后端项目基本都是基于 Spring Boot 进行开发,毕竟它这么好用以及天然微服务友好。不夸张的说,Spring Boot 是 Java 后端领域最最最重要的技术之一,熟练掌握它对于 Java 程序…

html推荐网站,20个经典bootsrtap后台html网站模板推荐

今天为大家推荐20款不同风格的Bootstrap后台管理模板,每一款都经典可用,能预览和下载,保证让你挑得眼花缭乱。1,Simpli flag蓝色Simpli Flat蓝色管理模板是一款采用Flat扁平风格的响应式管理模板,功能齐全,…

新练习作,实验室网站首页——未采用

一直很喜欢蓝色 由于种种猫腻,残鸟! 每个孩纸的作品后面都有一段悲伤滴往事,而我滴充满了猫腻! 擦~~不解释 让某些银的感觉史一会吧,我先自由的飞一会!转载于:https://www.cnblogs.com/meimeiwa/archive/2011/03/12/in…

ECSHOP商城网站建设之自定义调用广告方法(二)

原文地址:http://www.cnblogs.com/zgzy/p/3598991.html 使用ecshop进行商城网站建设时,ecshop默认的很多功能对于我们个性化设计之后不太使用。今天我们主要是来分析如果自定义调用广告位:1.调用单个广告位时我们可以使用:{insert…

网站建设过程中的:重要页面、关键页面、过程页面、结果页面

网站的页面类型和等级可做归类。 有些是“重要页面”,有些是“关键页面”,有些是“过程页面”,有些是“结果页面”。 这些根据页面存在的目的和作用分门别类。 “重要页面”和“关键页面”等级高于“过程页面”和“结果页面” 用户行为分析这…

网站的安全登录认证设计

用户登录是任何一个应用系统的基本功能,特别是对于网上银行系统来说,用户登录的安全性尤为重要。如何设计一个网站的安全登录认证程序,是本文主要讨论的问题。静态密码存在着比较多的安全隐患,***者有很多手段获得静态密码&#x…

借双慧眼识别钓鱼欺诈网站

借双慧眼识别钓鱼欺诈网站 钓鱼欺诈网站,又称仿冒网站。这些网站的内容主要是复制那些正常网站的内容,使得网民粗一看几乎和正常网站一模一样,区别仅限于浏览器的地址。 曾有新闻报道有骗子在北京街头做了个假ATM机,这ATM机和市民…

php漏洞书籍,PHP漏洞全解(一)-PHP网站的安全性问题

845002618491765410.jpg (163.16 KB, 下载次数: 58)2015-11-13 14:40 上传针对PHP的网站主要存在下面几种攻击方式:1、命令注入(Command Injection)2、eval注入(Eval Injection)3、客户端脚本攻击(Script Insertion)4、跨网站脚本攻击(Cross Site Scripting, XSS)5、…

博文视点大讲堂41期——SEO难点之网站内部链接结构 圆满成功

博文视点大讲堂41期——SEO难点之网站内部链接结构 圆满成功 2010年11月21日,电子工业出版社博文视点在中关村图书大厦五层如期举办了“博文视点大讲堂第41期:SEO难点之网站内部链接结构”,本次活动邀请经典畅销图书《网络营销实战密码》作者…