`
小斌张
  • 浏览: 87583 次
  • 性别: Icon_minigender_1
  • 来自: 河北
社区版块
存档分类
最新评论

https访问-不需要导入证书的方式

    博客分类:
  • java
阅读更多
httpclient 通过https访问网站的方式有两种,一种是需要导入证书,一种是不需要的。导入证书的安全性比较高,但是如果网站证书更新了,证书需要重新导入。下面的例子是不安全的:

package net.ben;


import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.cookie.Cookie;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;

import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import java.util.ArrayList;
import java.util.List;

public class HttpClientTest {
    public static void main(String[] args) throws Exception {
        DefaultHttpClient httpClient = new DefaultHttpClient();
        try {
            TrustManager easyTrustManager = new X509TrustManager() {

                public void checkClientTrusted(java.security.cert.X509Certificate[] x509Certificates, String s) throws java.security.cert.CertificateException {
                    //To change body of implemented methods use File | Settings | File Templates.
                }

                public void checkServerTrusted(java.security.cert.X509Certificate[] x509Certificates, String s) throws java.security.cert.CertificateException {
                    //To change body of implemented methods use File | Settings | File Templates.
                }

                public java.security.cert.X509Certificate[] getAcceptedIssuers() {
                    return new java.security.cert.X509Certificate[0];  //To change body of implemented methods use File | Settings | File Templates.
                }
            };

            SSLContext sslcontext = SSLContext.getInstance("TLS");
            sslcontext.init(null, new TrustManager[]{easyTrustManager}, null);
            SSLSocketFactory sf = new SSLSocketFactory(sslcontext);

            Scheme sch = new Scheme("https", 443, sf);

            httpClient.getConnectionManager().getSchemeRegistry().register(sch);

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

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

            HttpResponse response = httpClient.execute(httpget);
            HttpEntity entity = response.getEntity();

            System.out.println("----------------------------------------");
            System.out.println(response.getStatusLine());
            if (entity != null) {
                System.out.println("Response content length: " + entity.getContentLength());
            }
            String content = EntityUtils.toString(entity);
            System.out.println(content);


        } finally {
            httpClient.getConnectionManager().shutdown();
        }

    }

}


分享到:
评论

相关推荐

    WAS9或WAS8配置HTTPS证书详细教程

    网上找这个WebSphere(was)中间件或者应用服务器的相关资料还是挺少的。这里是一份关于was如何配置https证书,实现https访问的教程。

    Windows Server 2008系统管理视频教程csdn.txt

    11-25访问RemoteAPP的3种方式04:36 11-26终端服务负载均衡06:37 11-27安装TS Broker02:45 11-28在DNS服务器上为终端服务添加主机记录03:33 11-29为终端服务指定TS Broker02:42 11-30验证终端服务负载均衡07:39 11-31...

    易想最新升级包V4.0

    4.修复企业VIP自助建站联系方式不显示问题; 5.检查修复所有模板页; 6.调整仿阿里风格首页模板标签调用; 7.优化文章发布中的关键词; 8.增加网站标签辅助工具中标签搜索功能; 9.增加行业资讯里信息来源与...

    Windows Server 2008 活动目录视频课程csdn.txt

    4-2使用组策略创建访问网站的快捷方式04:07 4-3使用组策略实现文件复制03:44 4-4使用组策略为域用户映射网络驱动器03:55 4-5使用组策略为用户创建拨号链接02:44 4-6配置域用户登录发短信通知管理员06:35 4-7使用vbs...

    cmd操作命令和linux命令大全收集

    at /delete 停止所有计划任务,用参数/yes则不需要确认就直接停止 at id号 /delete 停止某个已注册的计划任务 at 查看所有的计划任务 at ip time 程序名(或一个命令) /r 在某时间运行对方某程序并重新启动计算机...

    恢复用EFS加密的文件或文件夹

    EFS加密是目前为止最安全的加密方式,...无论是添加授权用户,还是设置恢复代理,还是导入、导出证书,实际上的原理都是为文件访问创建私钥的条件,只有这样,拥有公钥的用户,在加上私钥便可以访问加密的文件夹了。

    Windows Server 2016 IIS10 设置HTTPS HTTP/2 并跑分到 A+

    三、导入证书,选择 导入 四、然后进入 网站 —— 你的网站 —— 绑定,选择: 类型: HTTPS 主机名: 和证书相对应的域名 SSL 证书:和域名相对应的证书 五、瞅一眼,是不是已经有 HTTPS 了? 六、IIS 10 ...

    第三代移动WEB内核小程序风口-逐浪CMS2 x3.9.3全面发布

    ■支持批量SSL证书部署模式 。 ■修正节日LOGO为SVG矢量。 ■修正搜索样式。 ■改进内置搜索表现,提供更多参数。 ■提供丰富的细致搜索。 ■在搜索主页提供svg代码式嵌入示范。 ■提供SASS(SCSS)引用规范 。 ■...

    人力资源管理软件(完全免费)

    优化了通用资料列表方式导入模块,支持更新模式(感谢Snailmail)(人力资源软件) 2008-02-28 人力资源管理软件做了以下改进 岗位管理处能否按公司排列显示(感谢蓝血人) 员工资料管理界面的公司和部门显示做了...

    C#基类库大全下载--苏飞版

    JsHelper--Javascript操作帮助类,输出各种JS方法,方便不懂JS的人使用,减少代码量 7.JSON 转化类 ConvertJson List转成Json|对象转成Json|集合转成Json|DataSet转成Json|DataTable转成Json|DataReader转成Json等...

    Mydex Browser Extension (SBX)-crx插件

    导入 - 带上所有当地的书签和/或浏览历史,然后按照您的方式进行删除 - 查看 - 排序和过滤您的PDS中的书签和/或浏览历史记录的视图 - 更新 - 更改不会复制您的书签或浏览历史记录,只保存一次,标记很多通过将数据...

    破解电信路由器RG100A-BA功能限制

    BA功能限制 今天蓝莓无意中从谷歌上得知电信赠送的无线路由器有一个隐藏的超级管理员帐号,这个帐号可以使用许多隐藏功能,不过蓝莓试了下网上的默认密码nE7jA%5m,对蓝莓的路由根本不管用,而且网络上也并没有关...

    SVN使用手册中文版快速入门

    它的行为方式与大多数其它子命令不同。 当我启动Apache,mod_dav_svn抱怨说发现一个“bad database version”,它发现了db-3.X而不是db-4.X。 我在RedHat 9得到“Function not implemented”错误,无法工作,我...

    asp.net知识库

    一完美的关于请求的目录不存在而需要url重写的解决方案! 在C#中实现MSN消息框的功能 XmlHttp实现无刷新三联动ListBox 鼠标放在一个连接上,会显示图片(类似tooltip) 使用microsoft.web.ui.webcontrols的TabStrip与...

    SVN使用手册中文版.chm

    它的行为方式与大多数其它子命令不同。 当我启动Apache,mod_dav_svn抱怨说发现一个“bad database version”,它发现了db-3.X而不是db-4.X。 我在RedHat 9得到“Function not implemented”错误,无法工作,我...

    手机 pdf 阅读器

    此版本主要修正索爱和诺基亚上的一些问题,MOTO用户可以不需要更新。自测机器为5300、N81、W710、M600 修正背景灯常亮无法保存的问题 NOKIA上按挂机键能正确保存阅读历史 修正在阅读历史损坏或过多的情况下不能启动...

    物联网安全_实验9 信息保密性、完整性和不可抵赖性的综合应用.doc

    同时,通过使用公钥密码算法,可以提供一种事先并不需要任何保密的渠道用来传递密匙的安全通讯方式。PGP功能强大,而且具有很快的速度,PGP提供的主要功能如表1.7.1所示。 表1.7.1 PGP的功能概述 功能 使用的算法 ...

    多客社区圈子开源后端1.9版(thinkphp6)

    3.在根目录里有个.evn文件,在输入数据库连接和授权码(最后一行auth_code那里填写/仅限商业版授权,开源不需要) 4.导入源码包内的数据库文件,访问后台(域名/admin 默认密码123456/开源版为6192652) 务必进入...

    网管教程 从入门到精通软件篇.txt

    Chkdsk 命令需要 Autochk.exe 文件。如果不能在启动目录(默认为 %systemroot%System32)中找到该文件,将试着在 Windows 安装 CD 中找到它。如果有多引导系统的计算机,必须保证是在包含 Windows 的驱动器上使用该...

Global site tag (gtag.js) - Google Analytics