JAVA操作SSL协议,通过Socket访问Https的程序代码例子

JAVA访问HTTPS协议的Web Service 一朋友因工作需要,要访问HTTPS协议的Web Service,与其一同摸索,终于解决。 欣喜之余,记录下来供需要的网友参考。 1. 下载证书 访问服务的WSDL地址,比如 https://访问站点地址/nealnet-epcis/query?wsdl  浏览器会提示证书错误或此网站未经过身份验证。点击查看证书,选择详细信息选项页,可以看到“复制到文件”按钮。 点 阅读详情

今天有人问,需要访问HTTPS的网站,作为client访问基于HTTPS的webservices,client这边通过设置以下系统参数,是可以成功的,
System.setProperty("javax.net.ssl.keyStore", keystoreFile);
System.setProperty("javax.net.ssl.keyStorePassword",keystorePassword);
System.setProperty("javax.net.ssl.trustStore", truststoreFile);
System.setProperty("javax.net.ssl.trustStorePassword",truststorePassword);

但是,问题是要作为clinet访问另外一个也是基于HTTPS的web services,当然证书是不一样的, 这时client能再次设置这些系统参数为另外的值么?访问能成功么?


原始帖子看这里: http://topic.youkuaiyun.com/u/20090713/10/112488bb-bf45-4f87-93f6-62961fc12ad5.html


我查看了资料并整理了一下,通过Socket可以进行,当然我个人认为httpclient等现成的组件也可以,不过我就不去尝试了,因为我许多时候更喜欢用自己封装的组件。


完整的代码如下:


Java访问HTTPS失败?看懂根证书支持与配置 下面用流程图对比一下JDK 10 之前与JDK 10 及以上版本在访问 HTTPS 地址时,证书验证和连接建立的关键步骤差异。JEP 319 虽然是一项“看不见”的增强,但对 Java 应用连接现代互联网 HTTPS 服务来说意义重大。它简化了证书管理流程,减少了很多因“不受信任证书”导致的连接失败问题。但与此同时,我们也要意识到,JDK 的选择直接影响到你的应用能否顺利访问 HTTPS 服务。如果你还在使用 JDK 8,建议尽快升级,享受更完整的 TLS 支持和安全能力。 阅读详情

相关推荐

org.apache.http.conn.ssl 是 Apache HttpClient 库中的一个包,它提供了与 HTTPS 协议(即使用 SSL/TLS 加密的 HTTP)相关的类和接口

org.apache.http.conn.ssl 是 Apache HttpClient 库中的一个包,它提供了与 HTTPS 协议(即使用 SSL/TLS 加密的 HTTP)相关的类和接口。要使用这些类,你通常需要将它们与 HttpClientBuilder 结合使用,以创建一个配置好的 CloseableHttpClient 实例。TrustStrategy 是 Apache HttpClient 中的一个接口,它允许你以更灵活的方式定义信任策略。这些接口和类与信任管理有关。

[Blog][Domain] programb.blog.youkuaiyun.com 1882

SSL介绍与JAVA实例

注:本文原载于:http://www.iteye.com/topic/1125183,文后有大量关于这个问题的讨论、回复,非常专业。感谢原作者。 有关SSL的原理和介绍在网上已经有不少,对于Java下使用keytool生成证书,配置SSL通信的教程也非常多。但如果我们不能够亲自动手做一个SSL Sever和SSL Client,可能就永远也不能深入地理解Java环境下,SSL的通信是如何

沉醉的专栏 751

实现HTTPS连接:使用HTTPClient访问Quickr REST API

在互联网应用的开发中,HTTPClient库扮演了非常重要的角色。它是一个用于执行HTTP协议相关操作的客户端库,能够创建和管理客户端的HTTP请求。使用HTTPClient库,开发者能够方便地发起各种类型的HTTP请求(如GET、POST、PUT、DELETE等),并且可以方便地处理服务器返回的响应。HTTPClient库通常具备以下特点:跨平台:在多种操作系统和编程语言中均能使用。易于集成:可以轻松集成到任何需要进行网络请求的应用中。

weixin_33256096的博客 960

Java SSL证书问题

一般来说访问一些自己的私有SSL服务器都会遇到SSL Exception,因为服务器证书不被信任。那么除了可以买一个公有证书外还有其它办法吗?如果你有对客户端的控制权的话,你可以自己生成一个证书,然后导入到客户端来使这个客户端信任这个证书。 至于Java可以怎么导入证书呢? 可以在虚拟机启动的时候告知证书的位置和密码: java -Djavax.net.ssl.trustStore=

hongchangfirst 4881

某讯天御滑块验证码逆向实战:从参数解析到环境对抗

本文详细解析了某讯天御滑块验证码的逆向工程实战技巧,从关键参数解析到浏览器环境模拟对抗。重点介绍了collect、eks等参数的逆向思路,以及如何通过puppeteer等工具补全环境检测,帮助开发者有效突破验证码防护。文章还提供了常见错误解决方案和性能优化建议,是验证码逆向领域的实用指南。

weixin_29325007的博客 440

从农田到城市:如何利用NDVI和缨帽变换提升遥感图像分类精度?

本文深入探讨了如何利用NDVI(归一化差值植被指数)和缨帽变换(Tasseled Cap Transformation)两大关键技术,有效提升从农田到城市等复杂场景的遥感图像分类精度。文章通过剖析地物光谱特征,对比了原始波段与衍生特征的优劣,并提供了在ENVI、ArcGIS及Python环境中的具体操作指南与实战策略,旨在帮助从业者构建更鲁棒的特征工程流程,从而解决地物混淆、边界模糊等常见分类难题。

redis7keeper的博客 867

SSL请求trustStore的两种注册方式

SSL请求trustStore的两种注册方式

fdyufgf的博客 6888

2021秋招IC验证面经-ARM中国/中科芯/飞腾/地平线/中兴

中科芯 (央企福利待遇好,但是百分百不解决户口,适合当地人进去躺平。) 现场面试,三个面试官,时间大约40min 首先介绍一下自己,介绍一下项目。所做项目用到了FIFO吗,深度是多少,位宽是多少,仲裁算法是什么? 验证环境中的reference model是自己写的还是本身就有的,仲裁怎么在参考模型中实现,参考模型怎么获取寄存器的值? 怎么配置RTL寄存器,通过平台的寄存器模型进行寄存器配置,寄存器模型里边的方法,写一个寄存器或读一个寄存器怎么实现? 寄存器如何实现前门访问和后门访问,后门访问时

weixin_48014653的博客 6320

JDK6访问JDK8 Https协议 SSL安全问题

问题说明: 通过HttpURLConnection访问Https协议的接口服务。 因为HttpURLConnection的子类 HttpsURLConnection 支持Https访问。 故使用HttpsURLConnection来访问Https协议。但在实际程序中 一直访问报错: SSLHandshakeException :Remote host closed connection durin...

weixin_43992555的博客 2334

RFID射频识别技术介绍及简单应用

简单介绍RFID技术及其简单应用,后附简单门禁制作方法和代码

来者皆是客。 1万+

【重磅干货】介质损耗因数(tanδ)揭秘:如何精准定位材料劣化最严重的温度?附权威研究PDF!

是评估绝缘材料性能的核心指标,能直接反映材料内部能量损耗和微观结构变化。通过分析tanδ-温度曲线的峰值点,可精准定位材料劣化最严重的温度。:极化损耗峰值的温度点(如环氧树脂的80℃)是材料性能拐点,需重点关注!:图3对比了5种材料的tanδ-温度曲线,峰值温度差异高达50℃!在电力设备、电子元器件等领域,材料的老化与温度密切相关。:[《介质损耗峰值温度在设备寿命预测中的应用》]在不同温度下测量tanδ,绘制曲线图。:[《多材料介质损耗峰值温度对比研究》]:基于tanδ峰值温度开发的。

mubiao05的博客 1351

认识HTTPS与Socket

一.HTTPS是什么 Https:超文本传输安全协议 二,HTTPS简介 https=http+ssl,顾名思义,https是在http的基础上加上了SSL保护壳,信息的加密过程就是在SSL中完成的 三.HTTPS与HTTP 四.什么是SSL SSL(Security Scokets Layer,安全套接层): 它是为网络通信提供安全及数据完整性的一种安全协议 是操作系统对外的API,SSL3....

Angela_L的博客 2007

uniapp(全端兼容) - 最新详细实现pdf在线预览功能,uniapp内置预览PDF文件功能,uniapp在安卓app|苹果app|h5网页网站|微信小程序中打开pdf进行在线预览(详细示例源码)

uni-app,安卓Android,苹果ios,App端,H5网页,移动端网站,微信小程序,支付宝小程序,nvue,vue,pdf文档,pdf文件,office,uniapp 预览pdf,uniapp怎么做pdf预览,uniapp如何实现全平台兼容的pdf在线预览,uniapp怎么在h5打开pdf文档,实现PDF在线预览,H5移动端文件预览pdf,文件下载和预览,uniapp App端pdf文件预览,app移动端在线预览pdf文件,无法预览pdf怎么办,有没有预览pdf的插件,根本打不开咋办,uniapp使

✅ 精选推荐文章 1万+

Java之HTTP网络编程(上篇:TCP/SSL网页下载)

期末复习之HTTP网络编程,主要学习记录HTTP(s)协议的网络编程,包括使用TCP Socket进行三次握手的HTTP网页下载,和使用SSL Socket的安全传输的HTTPs网页下载,通过案例实践自行完成编程,认识http(s)的实际工作机制!

陆海潘江的博客 4457

【ARFoundation自学04】AR Tracked Image 图像追踪识别与对应类的调用

1.添加组件 2.创建图像识别库 3.创建识别后追踪的物体(UI、模型等)

leoysq的博客 2560

matlab 一维相位解缠

一维相位解缠算法的matlab代码实现。

点云侠的博客 373

HTTP协议与HTTPS / SSL协议

Http 协议 1. Http 发展 HTTP/0.9 只有get 命令,且服务端直返HTML 格式字符串,服务器响应完毕就关闭TCP 连接 1991年提出 HTTP/1.0 1996 提出 可以发送任何格式内容,包括文字、图像、视频、二进制。也丰富了命令Get、Post、Head,请求和响应的格式加入头信息 每个TCP 连接只能发送一个请求,而新建TCP 连接的成本很高,导致Http/1.0 性能很差 HTTP/1.1(目前使用的最多协议) 1997年提出 引入持久连

qq_38560825的博客 568

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

常用通信方式socket,http,https,sftp,ftp

常用通信方式socket,http,https,sftp,ftp

Eplusing 3974

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

国密https访问

现在的SSL的加密算法实际上主要是国际算法,包括JDK,Go等语言也仅支持国际算法加密(毕竟是国外开源项目),hash。随着国密算法的普及,比如openssl就支持国密了,还要新版本的Linux内核也开始支持,以openssl为例:那么如果需要国密证书,或者访问国密https的时候就需要特定的sslsocket的握手算法传输层密码协议(TLCP)GB/T 38636-2020:传输层密码协议该协议与TLS协议的最重大区别,就是要求通信端提供两个证书:认证证书和加密证书。

fenglllle的博客 7683

Android解决HTTPS连接SSL的问题

Android 5.0以下版本(API 21以下),系统默认没有开启TLS协议,因此如果直接使用OKHTTP请求HTTPS链接,会出现SSL超时的问题。 先来看下SSL在android版本中支持的情况: Android在5.0的行为变更里面提到: https://developer.android.google.cn/about/versions/android-5.0-changes#ssl ...

生活,需要你的温暖。 2994

java ssl https 连接详解 生成证书

我们先来了解一下什么理HTTPS 1. HTTPS概念         1)简介           HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。这个系统的

draven1122的博客 999

Java实现Http/Https请求的方式

        工作中发现很多服务都是通过Http来提供服务:各模块之间通过Http来请求数据、外部服务例如各种Api(微信公众号小程序接口等)。作为用Java为开发语言的后端开发,实现Http请求的方式有原始Socket、URLConnection、HttpURLConnection、第三方工具HttpClient等。网络上已经有很多前人做了归纳,这里做个笔记:       1. java.ne...

流浪的虾壳 8160

HTTPS那些事 用java实现HTTPS工作原理

今天被问到关于https原理的问题,结果由于知识掌握不牢靠,停留于表面,很多细节都无法回答清楚,于是决定把https的原理弄个明白,废话不多说,我们先看看https的定义  (由于很久未写博客,排版有些凌乱,请谅解) 一:什么是https协议      在说HTTPS之前先说说什么是HTTP,HTTP就是我们平时浏览网页时候使用的一种协议。HTTP协议传输的数据都是未加密的,也就是明

u014386474的博客 1万+

JAVA中的Socket编程、通信协议、传输协议

Socket,建立起客户端和服务器之间的连接,实现数据的传输和交互,它既可以发送请求,也可以接受请求,一个Socket由一个IP地址和一个端口号唯一确定,利用Socket能比较方便的实现两端(服务端和客户端)的网络通信。

weixin_48351326的博客 777
上一篇: 今天周一再到北京南站,吸取教训顺利到达积水潭
下一篇: 学习的循环,周而复始无穷尽也
老紫竹
博客等级 码龄19年 1万+粉丝 1252原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值