首页 > 其他分享 >openfeign 忽略ssl证书 亲测有效

openfeign 忽略ssl证书 亲测有效

时间:2024-01-15 16:45:34浏览次数:30  
标签:java openfeign na ssl base sun security 亲测

请求https接口异常

Caused by: javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:131) ~[na:na]
	at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:371) ~[na:na]
	at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:314) ~[na:na]
	at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:309) ~[na:na]
	at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:654) ~[na:na]
	at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.onCertificate(CertificateMessage.java:473) ~[na:na]
	at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.consume(CertificateMessage.java:369) ~[na:na]
	at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:396) ~[na:na]
	at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:480) ~[na:na]
	at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:458) ~[na:na]
	at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:201) ~[na:na]
	at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172) ~[na:na]
	at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1500) ~[na:na]
	at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1415) ~[na:na]
	at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:450) ~[na:na]
	at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:421) ~[na:na]
	at java.base/sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:580) ~[na:na]
	at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:183) ~[na:na]
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.java:1430) ~[na:na]
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1401) ~[na:na]
	at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:220) ~[na:na]
	at feign.Client$Default.convertAndSend(Client.java:219) ~[feign-core-12.1.jar:na]
	at feign.Client$Default.execute(Client.java:105) ~[feign-core-12.1.jar:na]
	at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:102) ~[feign-core-12.1.jar:na]
	... 69 common frames omitted
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at java.base/sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:439) ~[na:na]
	at java.base/sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:306) ~[na:na]
	at java.base/sun.security.validator.Validator.validate(Validator.java:264) ~[na:na]
	at java.base/sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:231) ~[na:na]
	at java.base/sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:132) ~[na:na]
	at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:638) ~[na:na]
	... 88 common frames omitted
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at java.base/sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141) ~[na:na]
	at java.base/sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126) ~[na:na]
	at java.base/java.security.cert.CertPathBuilder.build(CertPathBuilder.java:297) ~[na:na]
	at java.base/sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:434) ~[na:na]
	... 93 common frames omitted

解决方法

1 jdk 导入 证书

浏览器打开请求接口,下载相应的证书
先进入 jdk jdk-17\lib\security
然后
导入

keytool -import -alias HWBPITEnterpriseCA1 -keystore cacerts -file D:\install_ca\BPIT\HWBPITEnterpriseCA1.crt -storepass changeit

下面是查看 和 删除 命令

keytool -list -v -alias HWBPITEnterpriseCA1  -keystore cacerts -storepass changeit

keytool -delete -alias HWBPITEnterpriseCA1 -keystore cacerts -storepass changeit

2 忽略 ssl 证书校验

openfeign 版本

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
            <version>4.0.1</version>
        </dependency>
@Configuration
public class IgnoreSSLCheckConfiguration {
    @Bean
    public Client feignClient() {
        return new Client.Default(getSSLSocketFactory(), new NoopHostnameVerifier());
    }

    private SSLSocketFactory getSSLSocketFactory() {
        try {
            SSLContext sslContext = SSLContexts.custom().loadTrustMaterial(null, new TrustSelfSignedStrategy()).build();
            return sslContext.getSocketFactory();
        } catch (Exception ex) {
            throw new RuntimeException(ex);
        }
    }
}

标签:java,openfeign,na,ssl,base,sun,security,亲测
From: https://www.cnblogs.com/linzm14/p/17965701

相关文章

  • docker mysql8使用SSL及使用openssl生成自定义证书
    修改my.cnfvi/docker_data/mysql/conf/my.cnf[client]default-character-set=utf8mb4[mysql]default-character-set=utf8mb4[mysqld]character-set-server=utf8mb4default_authentication_plugin=mysql_native_password#增加sslssl保存,重启mysql容器dockerrestartmysql-8.0.23......
  • 【前端】去掉el-drawer遮罩层,不影响其他位置点击的方法,亲测可用
    我的需求:抽屉控件的遮罩层,我觉得他黑漆漆的不好看,想换个颜色,可是没找到方法,又不想要遮罩层!于是乎,关闭modal(本质上,只是遮罩层颜色透明了,还是会影响页面交互)于是乎,我更改遮罩层宽度,做了一系列调整,使得遮罩层不会影响其他地方的点击!Elementplus的抽屉控件<el-drawer......
  • JDK1.8 如何升级到JDK17?详细图文讲解亲测有效
    前言电脑上之前已经安装了jdk1.8的版本,由于现在很多新的jar包需要jdk11以上版本。那么如何升级到jdk17的版本一、检查当前jdk版本java-version如果你本地已经有1.8版本了找到环境变量设置地方JAVA_HOME二、JDK17下载官方下载地址(Oracle中国的官方网站)https://www.or......
  • MySQL运维实战(2.4) SSL认证在MySQL中的应用
    作者:俊达引言MySQL支持使用TLS协议进行通信,该协议在数据库通信中具有关键作用。首先,TLS能够加密客户端与服务端之间的通信数据,涵盖了客户端发送至服务端的SQL请求以及服务端返回给客户端的数据,从而确保敏感信息的保密性和完整性。除此之外,TLS还允许客户端验证服务端的身份,确保安......
  • 腾讯云如何申请免费ssl证书以及如何使用
    一、申请证书 1.登录控制台https://console.cloud.tencent.com/ssl 2.点击申请免费证书 3.填写相关信息,注意网站用什么域名就写什么不要只写一级域名 4.去域名购买服务商设置域名解析 这些内容刚才的申请后跳转的页面会有,对应填写即可稍等待一会,几秒十几秒,点击域名......
  • Zabbix6.x监控SSL证书到期时间
    前言随着公司项目不断增多,随之开发使用的系统也越来越多,需要对域名SSL证书进行监控,以防止服务不可用。环境准备服务器:centos7.9安装依赖:yuminstallbcgccgcc-c++openssl-yzabbix:6.x脚本准备出于安全策略,服务并没有开放443端口,因此需要2个参数:域名和端口号#!/bin/shhost=......
  • Spring Boot2.x 集成 OpenFeign 实现 Hystrix 熔断降级与 Ribbon 负载均衡配置
    参考https://blog.csdn.net/zhangchaoyang/article/details/123453616https://blog.csdn.net/u010277958/article/details/88744263https://blog.csdn.net/iwlnner/article/details/110090595https://cloud.tencent.com/developer/article/2225692https://blog.csdn.net/z......
  • openssl生成自签名证书
    1.key的生成opensslgenrsa-des3-outserver.key2048这样是生成rsa私钥,des3算法,openssl格式,2048位强度。server.key是密钥文件名。为了生成这样的密钥,需要一个至少四位的密码。可以通过以下方法生成没有密码的key:opensslrsa-inserver.key-outserver.keyserver.key......
  • 网站使用SSL证书的重要性
    非所有网站都可以安全访问。事实上,某些网站可能包含恶意软件(恶意软件),可能会损害您的计算机或窃取您的个人联系信息或信用卡号。网络钓鱼是另一种常见的基于Web的攻击类型,诈骗者试图诱骗您向他们提供您的个人信息,如果您访问可疑网站,您可能会容易受到此攻击。身份盗用是一个严重的......
  • CSS语法检查利器之csslint
    本文于2015年底完成,发布在个人博客网站上。考虑个人博客因某种原因无法修复,于是在博客园安家,之前发布的文章逐步搬迁过来。背景前段时间研究使用YUICompressor压缩项目里的js和css文件,研究了两天之后,终于在周三晚上把YUICompressor集成进了打包流程中;于是周四(2015-11-12)早晨......