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相关推荐

  1. 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 ...

  2. php curl 不验证ssl,PHP Curl https跳过ssl证书认证报错记录及解决

    PHP Curl https跳过ssl证书认证报错记录及解决 function get($url = '', $cookie = '') { $ch = curl_init(); curl_setop ...

  3. 在Spring Rest模板中跳过SSL证书验证

    使用Spring Rest模板时如何跳过SSL证书验证? 配置Rest Template,以便它使用Http Client创建请求. 注意:如果您熟悉sun.security.provider.cer ...

  4. Java跳转语句break与continue

    Java跳转语句break与continue 概述: ​ 人为的对循环执行进行控制时使用的语句 分类: break:打断 在选择语句中结束整个选择语句的 在循环语句中结束整个循环,后续循环不执行 co ...

  5. 【笔记】Java 信任所有SSL证书(解决PKIX path building failed问题)

    [笔记]Java 信任所有SSL证书(解决PKIX path building failed问题) 参考文章: (1)[笔记]Java 信任所有SSL证书(解决PKIX path building f ...

  6. 【ssl认证、证书】java中的ssl语法API说明(SSLContext)、与keytool 工具的联系

    文章目录 1. 前言 java中的ssl语法与keytool 工具的联系 2. SSLContext的体系 2.1 KeyStore 2.1.1 通过证书库文件创建: 2.1.2 随机生成自签名证书库 ...

  7. 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 ...

  8. java 发送邮件(SSL加密方式,含附件)

    java 发送邮件(SSL加密方式) 一.基于javamail发送邮件 二.基于Apache提供的commons-email发送邮件 一.基于javamail发送邮件 maven: <depen ...

  9. Java 实现Https访问工具类 跳过ssl证书验证

    <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactI ...

最新文章

  1. 利用inotifywait监控主机文件和目录
  2. BZOJ 1016 最小生成树计数
  3. x86架构linux内核引导过程分析,SylixOS---x86引导过程分析
  4. python爬取豆瓣电影TOP250
  5. 无线数传电台工业控制的应用
  6. 编译错误error:nbsp;invalidamp;nbsp…
  7. oracle 11g安装自己理解
  8. node.js(一)基础介绍
  9. 如何将照片中的文字转变成可编辑的文章(如何将书上的文字转变为可编辑的文字)
  10. 计算机网络基础ios指令,IOS快捷指令制作真正的贴吧每天全自动签到
  11. dw移动图片位置,dw的移动的图片代码
  12. Microsoft C++ 异常: std::length_error,位于内存位置 0x000000AF9B7AF810 处
  13. 【android逆向笔记】(二)滚动的天空逆向
  14. 数字图像处理(13): 形态学处理——图像开运算与图像闭运算
  15. 东风岚图配谈“梦想”吗?
  16. 100块钱有多少组成方式
  17. 我的物联网项目之摇摇车三种消费模式和城市合伙人
  18. 专注是通向成功的直通车
  19. python 自用的包,随机user_agent,插入删除提交mysql语句
  20. Excel文件转成MD格式

热门文章

  1. 背单词-项目设计文档
  2. 在一起计时器_设计作品|最佳倒数计时器设计分析「附原型实例」
  3. 2022危险化学品经营单位主要负责人上岗证题库及在线模拟考试
  4. Qt 字符编码转换(UTF-8 转换为 GBK) \u7528\u6237\u672a\u7b7e\u7ea6
  5. 腾达n304v2支持万能中继吗_腾达无线路由器,无线中继怎么设置?
  6. K8S 快速入门(十六)实战篇:StorageClass(存储类)
  7. 递推递归练习 B - 王小二切饼
  8. 银行服务器销售业务,利用呼叫中心进行远程销售
  9. MSP430F5529之捕获模式下的HCSR04超声测距(粗略)
  10. STM32CubeIDE 利用LL库 SysTick简单实现hcsr04超声波测距