java 跳过 SSL
java 跳过 SSL
先用postman 测试下,(https://xxxxxxxx.com 地址)是否能访问成功
若在postman 中设置了,关闭SSL 验证
那java 代码里需要做一定来的变更,
pom文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.0</version><relativePath/></parent><groupId>org.example</groupId><artifactId>demo</artifactId><version>1.0-SNAPSHOT</version><dependencies><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>2.0.4</version></dependency><!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient --><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.13</version></dependency></dependencies><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target></properties></project>
测试代码
import com.alibaba.fastjson.JSONObject;
import com.sun.org.slf4j.internal.Logger;
import com.sun.org.slf4j.internal.LoggerFactory;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpDelete;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpPut;
import org.apache.http.conn.ssl.NoopHostnameVerifier;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import java.io.IOException;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.X509Certificate;
import java.util.HashMap;
import java.util.Map;/*** <p>记录一次post访问,跳过ssl</p>** @author YsEz* @version V1.0.0* @date 2022/5/26 14:54*/public class ToKenDataTest {protected static Logger log = LoggerFactory.getLogger(ToKenDataTest.class);public static void main(String[] args) {//uriString uri = "https://";//头Map<String, String> headerMap = new HashMap<>();//体Map<String, String> paramMap = new HashMap<>();paramMap.put("app_key", "123");paramMap.put("app_value", "456");//post 请求 获得tokenString httpPostToken = getHttpPost(uri, headerMap, paramMap);//System.out.println("---httpPostToken:" + httpPostToken);}private static String getHttpPost(String uri, Map<String, String> headerMap, Map<String, String> paramMap) {HttpClient httpClient = wrapClient();//创建HttpClient,关键点一//uri,这里决定用 post,还是用其他方式HttpGet httpGet = new HttpGet(uri);HttpPost httpPost = new HttpPost(uri);HttpDelete httpDelete = new HttpDelete(uri);HttpPut httpPut = new HttpPut(uri);//头for (Map.Entry<String, String> entry : headerMap.entrySet()) {httpPost.addHeader(entry.getKey(), entry.getValue());}//体httpPost.setEntity(new StringEntity(JSONObject.toJSONString(paramMap), ContentType.create("application/json", "utf-8")));System.setProperty("jsse.enableSNIExtension", "false");//ssl免检 关键点二//访问HttpResponse httpResponse;String entity = null;try {httpResponse = httpClient.execute(httpPost);entity = EntityUtils.toString(httpResponse.getEntity(), "UTF-8");} catch (IOException e) {log.error(e.getMessage(), e);}return entity;}public static HttpClient wrapClient() {//关键点三try {SSLContext sc = SSLContext.getInstance("TLS");X509TrustManager tm = new X509TrustManager() {@Overridepublic void checkClientTrusted(X509Certificate[] x509Certificates, String s) {}@Overridepublic void checkServerTrusted(X509Certificate[] x509Certificates, String s) {}@Overridepublic X509Certificate[] getAcceptedIssuers() {return null;}};sc.init(null, new TrustManager[] {tm}, null);SSLConnectionSocketFactory ssf = new SSLConnectionSocketFactory(sc, NoopHostnameVerifier.INSTANCE);return HttpClients.custom().setSSLSocketFactory(ssf).build();} catch (NoSuchAlgorithmException | KeyManagementException e) {return HttpClients.createDefault();}}
}
java 跳过 SSL相关推荐
- java用HttpURLConnection发起HTTPS请求并跳过SSL证书,解决:unable to find valid certification path to requested targ
java用HttpURLConnection发起HTTPS请求并跳过SSL证书 问题出现:unable to find valid certification path to requested ta ...
- php curl 不验证ssl,PHP Curl https跳过ssl证书认证报错记录及解决
PHP Curl https跳过ssl证书认证报错记录及解决 function get($url = '', $cookie = '') { $ch = curl_init(); curl_setop ...
- 在Spring Rest模板中跳过SSL证书验证
使用Spring Rest模板时如何跳过SSL证书验证? 配置Rest Template,以便它使用Http Client创建请求. 注意:如果您熟悉sun.security.provider.cer ...
- Java跳转语句break与continue
Java跳转语句break与continue 概述: 人为的对循环执行进行控制时使用的语句 分类: break:打断 在选择语句中结束整个选择语句的 在循环语句中结束整个循环,后续循环不执行 co ...
- 【笔记】Java 信任所有SSL证书(解决PKIX path building failed问题)
[笔记]Java 信任所有SSL证书(解决PKIX path building failed问题) 参考文章: (1)[笔记]Java 信任所有SSL证书(解决PKIX path building f ...
- 【ssl认证、证书】java中的ssl语法API说明(SSLContext)、与keytool 工具的联系
文章目录 1. 前言 java中的ssl语法与keytool 工具的联系 2. SSLContext的体系 2.1 KeyStore 2.1.1 通过证书库文件创建: 2.1.2 随机生成自签名证书库 ...
- Caused by: java.io.EOFException: SSL peer shut down incorrectly
详细报错信息如下: 2022-03-07 11:29:33.123 ERROR 70700 --- [eate-1250315597] com.alibaba.druid.pool.DruidData ...
- java 发送邮件(SSL加密方式,含附件)
java 发送邮件(SSL加密方式) 一.基于javamail发送邮件 二.基于Apache提供的commons-email发送邮件 一.基于javamail发送邮件 maven: <depen ...
- Java 实现Https访问工具类 跳过ssl证书验证
<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactI ...
最新文章
- 利用inotifywait监控主机文件和目录
- BZOJ 1016 最小生成树计数
- x86架构linux内核引导过程分析,SylixOS---x86引导过程分析
- python爬取豆瓣电影TOP250
- 无线数传电台工业控制的应用
- 编译错误error:nbsp;invalidamp;nbsp…
- oracle 11g安装自己理解
- node.js(一)基础介绍
- 如何将照片中的文字转变成可编辑的文章(如何将书上的文字转变为可编辑的文字)
- 计算机网络基础ios指令,IOS快捷指令制作真正的贴吧每天全自动签到
- dw移动图片位置,dw的移动的图片代码
- Microsoft C++ 异常: std::length_error,位于内存位置 0x000000AF9B7AF810 处
- 【android逆向笔记】(二)滚动的天空逆向
- 数字图像处理(13): 形态学处理——图像开运算与图像闭运算
- 东风岚图配谈“梦想”吗?
- 100块钱有多少组成方式
- 我的物联网项目之摇摇车三种消费模式和城市合伙人
- 专注是通向成功的直通车
- python 自用的包,随机user_agent,插入删除提交mysql语句
- Excel文件转成MD格式
热门文章
- 背单词-项目设计文档
- 在一起计时器_设计作品|最佳倒数计时器设计分析「附原型实例」
- 2022危险化学品经营单位主要负责人上岗证题库及在线模拟考试
- Qt 字符编码转换(UTF-8 转换为 GBK) \u7528\u6237\u672a\u7b7e\u7ea6
- 腾达n304v2支持万能中继吗_腾达无线路由器,无线中继怎么设置?
- K8S 快速入门(十六)实战篇:StorageClass(存储类)
- 递推递归练习 B - 王小二切饼
- 银行服务器销售业务,利用呼叫中心进行远程销售
- MSP430F5529之捕获模式下的HCSR04超声测距(粗略)
- STM32CubeIDE 利用LL库 SysTick简单实现hcsr04超声波测距