首页 > 其他分享 >ClientBuilder https请求时忽略SSL证书。

ClientBuilder https请求时忽略SSL证书。

时间:2024-01-31 18:33:29浏览次数:36  
标签:void public SSL https import ClientBuilder javax X509TrustManager

在chrome中连接https时,有时被告知不是私密链接,手动可以继续。用java 代码进行https也遇到这种情况,可以 实现一个X509TrustManager接口,用于绕过验证,不用修改里面的方法

附完整可用代码

import org.glassfish.jersey.jackson.JacksonFeature;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import javax.ws.rs.client.*;
import javax.ws.rs.core.MediaType;

public class SensLevelHelper {
    public static void main(String[] args) throws Exception {
        ignoreSSLCert();
    }

    public static void ignoreSSLCert() throws Exception {
        Client testClient = ClientBuilder.newBuilder()
                .sslContext(createIgnoreVerifySSL())
                .hostnameVerifier((s1, s2) -> true).register(new JacksonFeature()).build();
        WebTarget webTarget = testClient.target("https://******");    // 这个网址需要忽略SSL证书
        System.out.println(webTarget.getUri());

        Invocation.Builder invocationBuilder = webTarget.request(MediaType.APPLICATION_JSON);
        LogInHelper.PubKey publicKey = invocationBuilder.get(LogInHelper.PubKey.class);
        System.out.println(publicKey);
    }

    private static SSLContext createIgnoreVerifySSL() throws Exception {
        SSLContext sc = SSLContext.getInstance("TLSv1.3");

        // 实现一个X509TrustManager接口,用于绕过验证,不用修改里面的方法
        X509TrustManager trustManager = new X509TrustManager() {
            @Override
            public void checkClientTrusted(
                    java.security.cert.X509Certificate[] paramArrayOfX509Certificate,
                    String paramString) {
            }

            @Override
            public void checkServerTrusted(
                    java.security.cert.X509Certificate[] paramArrayOfX509Certificate,
                    String paramString) {
            }

            @Override
            public java.security.cert.X509Certificate[] getAcceptedIssuers() {
                return null;
            }
        };

        sc.init(null, new TrustManager[]{trustManager}, null);
        return sc;
    }
}

 

标签:void,public,SSL,https,import,ClientBuilder,javax,X509TrustManager
From: https://www.cnblogs.com/panda4671/p/17999889

相关文章

  • 群晖开启HTTPS访问
    1.申请免费SSL证书点击连接,微信扫码,登陆腾讯云控制台,直接跳转到证书申请页面。腾讯云免费SSL证书申请在腾讯申请的域名可以使用自动DNS验证,在其他域名服务商申请的域名,选择手动DNS验证。填写域名,例如nas.example.com,填写邮箱。点击提交申请,进行域名验证后,进入下面的页面。会提......
  • 使用Java实现HTTPS通信:一场加密的探戈
    你知道吗,HTTPS不仅仅是一个简单的字母替换游戏,它是互联网安全的重要组成部分。好消息是,有了Java,我们也可以轻松地实现HTTPS通信!今天,就让我们一起跳进加密的探戈世界,了解如何使用Java实现HTTPS通信。首先,我们要明白HTTPS是什么。简单来说,HTTPS就是“超文本传输协议安全版”,它通过使......
  • burpsuite抓取修改http和https流量(proxy模块的简单应用)
    一、操作环境目标机:DVWA网站操作机:BurpSuite Prov2.1;FireFox浏览器二、操作步骤1.设置BP代理服务端口代理--选项--监听器(选项卡) 为什么不用8080?因为Tomcat默认端口和BP的默认监听端口一致,同时打开会导致端口冲突。2.设置Fir......
  • 繁体字转化为简体字 https://share.weiyun.com/ZsmZl6g5 密码:rc8mva
    12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788......
  • windows 宝塔本地部署ssl证书
    1、使用 mkcert-v1.4.4-windows-amd64.exe参考《https本地自签名证书添加到信任证书访问》1#进入到mkcert-v1.4.4-windows-amd64.exe下载文件位置2#执行命令3./mkcert-v1.4.4-windows-amd64.exe*.game.localaiPlatform.devlocalhost127.0.......
  • 【教程】iOS如何抓取HTTP和HTTPS数据包经验分享
    ......
  • http和https的区别是什么?https有什么优缺点?
    HTTP(HypertextTransferProtocol,超文本传输协议)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。这个简单模型是早期Web成功的有功之臣,因为它使开发和部署非常地直截了当,被广泛地使用在WEB中。HTTPS(全称:Hyperte......
  • OPENSSL1.1交叉编译编译异常处理
    openssl 编译异常报以下错误Operatingsystem:x86_64-whatever-linux2"glob"isnotexportedbytheFile::GlobmoduleCan'tcontinueafterimporterrorsat./Configureline18.BEGINfailed--compilationabortedat./Configureline18."glob"......
  • SSL 数字证书的的格式
    base64base64格式可读性强强方便传输和查看例如git免密登录都这种格式opensslbase64-incert.cer-outcert.base64二进制DERDistinguishedEncodingRules通常用于表示X.509格式的证书二进制存贮和传输通常以.cer或.der为扩展名opensslx509-outform......
  • 自定义httpServletRequestWrapper导致上传文件请求参数丢失
    问题背景项目是SpringBoot单体式,在项目中,为了实现调用controller请求的日志记录功能。因此做了以下配置:创建自定义拦截器LogInterceptor;因为需要使用到流获取请求参数,解决流只能读一次问题,所以需要自定义HttpServletRequestWrapper;需要使得自定义HttpServletRequestW......