首页
学习
活动
专区
圈层
工具
发布

java 用httpclient访问https时经常返回403的原因

先听一首歌吧 今天使用了一些httpclient包进行https网页数据的访问,但是一直返回403的问题,一开始以为网站做了限制为了防止爬虫,后来就加入了头部user-Agent来模拟浏览器,结果还是不行...下载下来放到了idea里访问了一下https的这个url结果成功了。对比了一下不同之处,除了httpclient jar包的版本有高低外还有就是使用的jdk版本不同。...紧接着在百度搜所了一下原因找到了以下的文章: 问题描述:访问https出现hostname in certificate didn't match问题,本地测试正常原因是本地环境支持了SNI(Server...在java客户端上,SNI要求JDK至少到 ,HttpClient至少到4.3.2,本地测试环境满足该要求,而线上环境JDK是1.6的所以会有问题。...method stub return true; } }); Registry socketFactoryRegistry = RegistryBuilder . create().register("https

3.5K90

用信鸽来解释 HTTPS

如果你阅读本文的目的是想设计下一套 HTTPS 协议,那我只能抱歉的说本文的知识还远远不够;如果不是的话,那么就煮杯咖啡,轻松愉悦的阅读本文吧。 爱丽丝、鲍伯和 … 信鸽?...我知道这个假设有些太过随意,但相信我 HTTPS 就是这样工作的,尽管它的速度快的多。 我们先不谈服务器、客户端或者黑客攻击,先来聊一下爱丽丝、鲍伯和马洛里。...我之前的距离中,使用的偏移量是 3 ,但是也可以用 4 或者 12 。 问题是如果爱丽丝和鲍勃在开始用信鸽传信之前没有碰过头,他们没有一个安全的方式来确立密匙。...现实世界中我们不会用信鸽这样慢的送信手段,但用非对称加密来编码信息仍要慢于使用对称加密技术,所以我们只有在交换编码密匙的时候会使用非对称加密技术。...现在你已经了解了HTTPS是如何工作的了,你的咖啡也应该准备好了。好好享用吧你受之无愧。 每天 进步一点点

2.8K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    用信鸽来解释HTTPS

    作者:JonnHuang 链接:https://www.oschina.net/translate/https-explained-with-carrier-pigeons 密码学是一门难以理解的学科,...我知道这个假设有些太过随意,但相信我 HTTPS 就是这样工作的,尽管它的速度快的多。 我们先不谈服务器、客户端或者黑客攻击,先来聊一下爱丽丝、鲍伯和马洛里。...我之前的距离中,使用的偏移量是 3 ,但是也可以用 4 或者 12 。 问题是如果爱丽丝和鲍勃在开始用信鸽传信之前没有碰过头,他们没有一个安全的方式来确立密匙。...现实世界中我们不会用信鸽这样慢的送信手段,但用非对称加密来编码信息仍要慢于使用对称加密技术,所以我们只有在交换编码密匙的时候会使用非对称加密技术。...现在你已经了解了HTTPS是如何工作的了,你的咖啡也应该准备好了。好好享用吧你受之无愧。

    2.3K30

    Tomcat创建HTTPS访问,java访问https

    一 https和ssL HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版...即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。...https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。...二 Tomcat创建https访问 详细官方文档:http://tomcat.apache.org/tomcat-8.0-doc/ssl-howto.html 1....三 java请求https 采用httpclient4.3+ ssl需要制定证书,这里首先忽略证书访问: public static HttpClient getClient(boolean isSSL

    2.6K100

    用信鸽来解释 HTTPS

    英文:Andrea Zanin,翻译:开源中国 www.oschina.net/translate/https-explained-with-carrier-pigeons 密码学是一门难以理解的学科...如果你阅读本文的目的是想设计下一套 HTTPS 协议,那我只能抱歉的说本文的知识还远远不够;如果不是的话,那么就煮杯咖啡,轻松愉悦的阅读本文吧。 爱丽丝、鲍伯和 … 信鸽?...我知道这个假设有些太过随意,但相信我 HTTPS 就是这样工作的,尽管它的速度快的多。 我们先不谈服务器、客户端或者黑客攻击,先来聊一下爱丽丝、鲍伯和马洛里。...我之前的距离中,使用的偏移量是 3 ,但是也可以用 4 或者 12 。 问题是如果爱丽丝和鲍勃在开始用信鸽传信之前没有碰过头,他们没有一个安全的方式来确立密匙。...现在你已经了解了HTTPS是如何工作的了,你的咖啡也应该准备好了。好好享用吧你受之无愧。

    1.9K10

    用frp内网穿透https网站

    平时用frp都只用http反向代理和端口暴露两个功能,可由于打算将所有网站放到本地,通过frp暴露到公网上。这就要求我研究一下如何用frp穿透https网站。...其实替代方案也很直接,就是用frp穿透一个端口或者http,公网服务器用nginx再反向代理一下就行。但是考虑到frp本身就支持https,可以尝试下。...方式1:使用https2http 首先要注意https2http插件是最近支持的,在v0.26.0增加了https2http插件。...我的理解是该插件类似于一个nginx功能,访问本地服务器时用http,对外暴露https。...方式2:直接使用https 几经波折后,在issue中看到了较为原始的https实现方案,就是frp本身不做任何请求改写工作,只是解析域名,然后转发。

    9.6K30

    Java发送HTTPS请求

    前言 上篇文章介绍了 java 发送 http 请求,大家都知道发送http是不安全的 。我也是由于对接了其他企业后总结了一套发送 https的工具。...大家网上找方法很多的,但是可不是你粘过来就能用啊,我也是踩过坑的,所以我这个工具,只要粘贴到你们自己项目里就可以用。...正文 本文只介绍 发送 post 请求,既然选择了 https 就不会用get,因为get也是不安全的。 读前须知 我会把需要依赖的包和引入的包先贴给大家,防止大家引用错误。...; import java.util.Iterator; import java.util.List; import java.util.Map; HTTPS 发送 POST 请求 一共需要两个类,...private String url = "https://www.xxxxxxxx.com/openapi/page/gettoken"; private String charset = "utf-

    5.5K20

    Java HTTPS如何加载证书

    Java HTTPS如何加载证书在进行Java编程开发中,经常会涉及到使用HTTPS协议进行安全通信。而HTTPS的安全性是建立在数字证书的基础上的,因此在Java中加载证书是一个非常重要的步骤。...JavaHTTPS如何加载证书在Java中,加载证书主要依赖于KeyStore这个类。KeyStore是一个用来管理密钥和证书的容器,而在HTTPS通信中,我们需要使用到的是信任证书。...在Java中,KeyStore的类型有多种,比如JKS、PKCS12等,这里我们以JKS为例进行介绍。...通过以上的步骤,我们就可以在Java中加载证书,并通过HTTPS与服务器进行安全通信了。当然,在实际的开发过程中,还需要考虑证书的更新、证书过期等问题,但这已经超出了本文的范围。...希望本文对大家理解Java HTTPS加载证书的过程有所帮助。部分代码转自:https://www.songxinke.com/java/2023-08/253966.html

    76420

    java HttpsURLConnection 实现https请求

    传统的方法是使用Socket接口,但现在很多开发平台或工具如.NET、Java或PHP等都提供了简单的Web访问接口,使用这些接口很容易编程实现与Web应用系统的交互访问,即使要访问那些采用了HTTPS...直接使用类HttpsURLConnection访问Web页面   Java提供了一种非常简洁的方法来访问HTTPS网页,即使用类HttpsURLConnection、URL等。...下面用一个图简单表示这几个JSSE类的关系:  ?...小结   本文主要介绍了在HTTPS的证书未经权威机构认证的情况下,访问HTTPS站点的两种方法,一种方法是把该证书导入到Java的TrustStore文件中,另一种是自己实现并覆盖JSSE缺省的证书信任管理器类...下面我们来看看实现X509TrustManager的接口实现https请求代码 1、实现X509TrustManager获取SSLSocketFactory [java] view plain

    2.6K30

    用 Charles 断点调试 HTTPS 请求,原理揭秘

    现在的网站基本都是 https 的,而 charles 是常用的 http 抓包工具,所以用 charles 调试 https 请求是常见的需求。...自己用服务端的证书和服务端对接不就行了? 也就是这样: Charles 自己用服务端的证书来和服务端通信,然后给浏览器一个自己的证书,这样就能解密传输的内容,拿到明文数据了。...之后响应的时候还会断住,这时候就可以用同样的方式修改响应了: 比如我把 title 修改了一下,点击 execute 之后,看到的网页就是修改过后的: 这样我们就可以断点调试 https 请求了。...总结 用 Charles 调试 https 请求是常见的需求,它需要安装 Charles 的证书到本地系统,然后信任,之后就可以抓到明文数据了。...移动端 https 调试也是同样的原理,只不过需要配置下代理和证书。 如果想切换代理服务器或者设置有的页面不走代理,可以用 Chrome 插件 SwitchyOmega 来控制。

    1K20

    Java 配合 mitmproxy HTTPS 抓包调试

    来源:漠然 , blog.mritd.me/2017/03/25/java-capturing-https-packets-use-mitmproxy/ 今天对接接口,对方给的 Demo 和已有项目用的...选择对应平台并将其证书加入到系统信任根证书列表即可;对于 Java 程序来说可能有时候并不会生效,所以必须 修改 keystore,修改如下 # Linux 一般在 JAVA_HOME/jre/lib/...security/cacerts 下 # Mac 在 /Library/Java/JavaVirtualMachines/JAVA_HOME/Contents/Home/jre/lib/security...三、Java 其他代理设置 Java 代理一般可以通过 2 种方式设置,一种是通过代码层,如下 // HTTP 代理,只能代理 HTTP 请求 System.setProperty("http.proxyHost...的那些事 http://www.aneasystone.com/archives/2015/12/java-and-http-using-proxy.html 一步一步教你https抓包 http:

    2.4K20

    数字证书系列--用证书搭建https网站

    myprivate.key [root@localhost cert_test]# 除了要提供服务器签名证书的路径外,通常需要提供 "证书链证书" 的路径,在这里,我们不需要提供"证书链证书" 的路径,因为我们是直接用CA...setenforce 0 [root@localhost cert_test]# systemctl restart httpd.service [root@localhost cert_test]# 至此,重启完成,用curl...命令进行验证, 结果如下,提示证书是不受信任的;我们用-k参数跳过证书验证; [root@localhost cert_test]# curl -I https://127.0.0.1/ curl: (...[root@localhost cert_test]# #用-k参数跳过证书验证,可以看到curl的结果 [root@localhost cert_test]# curl -Ik https://127.0.0.1...其实根据上面的提示,我们知道curl 用系统中bundle的证书来进行验证,而我们自己创建的证书当然不是系统bundle的,所以才提示“not trusted"。

    1.8K30

    【实践】如何在本地环境用GO实现HTTPS链接?

    1,摘要 本篇文章是基于实操,如何在本地环境用GO实现HTTPS链接。原理部分请参考文章《【深度知识】HTTPS协议原理和流程分析》。...crt是CA认证后的证书文,(windows下面的,其实是crt),签署人用自己的key给你签署的凭证。...Java和Windows服务器偏向于使用这种编码格式. 3,OpenSSL建立HTTPS链接最终失败 按照《TLS完全指南(二):OpenSSL操作指南》文档操作,最终失败。...4, tls-gen产生私钥建立HTTPS链接 4.1 构建 CA 证书链 tls-gen是一个用 Python 编写的、非常易用的工具。它定义了三种 profile。.../p/26684050 TLS完全指南(二):OpenSSL操作指南[实际操作失败] https://zhuanlan.zhihu.com/p/26684071 TLS完全指南(三):用Go语言写

    2.7K50
    领券