最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

feign調用跳過HTTPS的SSL證書校驗配置過程

 更新時間:2025年07月15日 09:34:51   作者:秋分的秋刀魚  
Feign默認驗證SSL證書,若服務器使用自簽名或內部CA證書會導致連接失敗,解決方法是跳過校驗,但僅限測試環(huán)境,生產環(huán)境需嚴格驗證以確保安全

一、問題拋出

如果不配置跳過SSL證書校驗,當Feign客戶端嘗試連接到一個使用自簽名證書的服務器時,可能會拋出類似以下的異常:

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

二、原因分析

如果不添加跳過SSL證書校驗的配置,Feign客戶端在調用HTTPS服務時會嚴格驗證服務器的SSL證書。

這種行為是默認且推薦的做法,因為它可以確保通信的安全性和完整性。

以下是如果不添加該配置的具體影響:

2.1 證書驗證

默認行為:Feign客戶端會使用系統(tǒng)的默認TrustManager來驗證服務器的SSL證書。

驗證內容:

  • 證書有效性:檢查證書是否由受信任的證書頒發(fā)機構(CA)簽發(fā)。
  • 證書過期:確保證書在有效期內。
  • 證書鏈:驗證證書鏈的完整性。
  • 主機名匹配:確保證書中的主機名與請求的主機名匹配。
  • 目的:驗證服務器的身份,確??蛻舳诉B接的是正確的服務器。

過程:

  • 客戶端請求服務器的證書。
  • 服務器返回證書。
  • 客戶端驗證證書的有效性,包括證書是否由受信任的CA簽發(fā)、證書是否過期等。
  • 如果驗證通過,客戶端和服務器使用證書中的公鑰進行密鑰交換,建立安全的通信通道。

2.2 影響

安全性增強:確保數(shù)據(jù)傳輸?shù)陌踩院屯暾?,防止中間人攻擊。

潛在問題:

  • 自簽名證書:如果服務器使用自簽名證書或內部CA簽發(fā)的證書,客戶端會拒絕連接,除非這些證書被顯式信任。
  • 證書過期或無效:如果證書過期或無效,客戶端會拒絕連接。
  • 主機名不匹配:如果證書中的主機名與請求的主機名不匹配,客戶端會拒絕連接。

三、解決方法-跳過SSL證書校驗

風險:跳過SSL證書校驗會使得中間人攻擊成為可能,攻擊者可以攔截并篡改數(shù)據(jù)。

適用場景:僅在開發(fā)和測試環(huán)境中使用,生產環(huán)境中應嚴格配置和驗證SSL證書。

實現(xiàn)方法:

  • 創(chuàng)建一個自定義的TrustManager,忽略證書校驗。
  • 配置自定義的SSLSocketFactoryHostnameVerifier。

四、代碼配置,跳過SSL證書校驗

@Slf4j
@Configuration
public class FeignClientConfig {

    @Bean
    public Logger.Level feignLogLevel() {
        return Logger.Level.FULL;
    }

    @Bean
    public CachingSpringLoadBalancerFactory cachingFactory(SpringClientFactory clientFactory) {
        return new CachingSpringLoadBalancerFactory(clientFactory);
    }

    @Bean
    @ConditionalOnMissingBean
    public Client feignClient(CachingSpringLoadBalancerFactory cachingFactory,
                              SpringClientFactory clientFactory) throws NoSuchAlgorithmException, KeyManagementException {
        SSLContext ctx = SSLContext.getInstance("SSL");
        X509TrustManager tm = new X509TrustManager() {
            @Override
            public void checkClientTrusted(X509Certificate[] chain, String authType) {
            }

            @Override
            public void checkServerTrusted(X509Certificate[] chain, String authType) {
            }

            @Override
            public X509Certificate[] getAcceptedIssuers() {
                return new X509Certificate[0];
            }
        };
        ctx.init(null, new TrustManager[]{tm}, null);
        return new LoadBalancerFeignClient(new Client.Default(ctx.getSocketFactory(),
                HttpsURLConnection.getDefaultHostnameVerifier()),
                cachingFactory, clientFactory);
    }
}

五、總結

不添加跳過SSL證書校驗的配置可以顯著提高安全性,但可能會導致連接失敗,特別是在使用自簽名證書或內部CA證書的情況下。因此,建議在生產環(huán)境中正確配置和驗證SSL證書,而在開發(fā)和測試環(huán)境中可以考慮使用跳過SSL證書校驗的配置,但應謹慎使用。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Java面試題沖刺第十一天--集合框架篇(2)

    Java面試題沖刺第十一天--集合框架篇(2)

    這篇文章主要為大家分享了最有價值的兩道集合框架的面試題,涵蓋內容全面,包括數(shù)據(jù)結構和算法相關的題目、經典面試編程題等,感興趣的小伙伴們可以參考一下
    2021-07-07
  • spring-retry組件的使用教程

    spring-retry組件的使用教程

    Spring Retry的主要目的是為了提高系統(tǒng)的可靠性和容錯性,當方法調用失敗時,Spring Retry可以在不影響系統(tǒng)性能的情況下,自動進行重試,從而減少故障對系統(tǒng)的影響,這篇文章主要介紹了spring-retry組件的使用,需要的朋友可以參考下
    2023-06-06
  • 淺析Java如何在Excel中添加或刪除分頁符

    淺析Java如何在Excel中添加或刪除分頁符

    一份排版精良、分頁合理的報表,不僅能提升專業(yè)度,更能確保信息的有效傳達,本文將向大家介紹如何使用 Spire.XLS for Java 在Java中實現(xiàn)Excel分頁符的添加與刪除,有需要的可以了解下
    2025-11-11
  • Java數(shù)據(jù)結構之查找

    Java數(shù)據(jù)結構之查找

    本文主要介紹了Java數(shù)據(jù)結構中查找的相關知識。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-03-03
  • SpringMVC源碼解讀之HandlerMapping

    SpringMVC源碼解讀之HandlerMapping

    這篇文章主要介紹了SpringMVC源碼解讀之HandlerMapping 的相關資料,需要的朋友可以參考下
    2016-02-02
  • javaweb上傳下載實例完整版解析(下)

    javaweb上傳下載實例完整版解析(下)

    這篇文章主要為大家詳細解析了javaweb上傳下載實例,本文重點在于文件下載功能的實現(xiàn),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • Java中Tuple的功能及使用詳解

    Java中Tuple的功能及使用詳解

    Java中的Tuple是一種非常有用的數(shù)據(jù)結構,它可以讓開發(fā)者在處理多個數(shù)據(jù)元素時更加方便和高效,通過Tuple,我們可以將多個變量打包成一個對象,從而減少了代碼量,提高了代碼可讀性,這篇文章主要介紹了Java中Tuple的功能及使用場景,需要的朋友可以參考下
    2024-01-01
  • SpringBoot項目使用?axis?調用webservice接口的實踐記錄

    SpringBoot項目使用?axis?調用webservice接口的實踐記錄

    這篇文章主要介紹了SpringBoot項目使用?axis?調用webservice接口,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • 利用Java實現(xiàn)讀取WPS?Excel中嵌入的圖片

    利用Java實現(xiàn)讀取WPS?Excel中嵌入的圖片

    許多數(shù)據(jù)文件中可能包含嵌入式圖片,這些圖片對于數(shù)據(jù)分析和可視化非常重要,下面我們就來看看如何使用Java讀取WPS?Excel中嵌入的圖片吧
    2024-11-11
  • java &與&&的區(qū)別及實例

    java &與&&的區(qū)別及實例

    這篇文章主要介紹了java &與&&的區(qū)別的相關資料,并附簡單實例,幫助大家學習理解這部分知識,需要的朋友可以參考下
    2016-10-10

最新評論

深泽县| 凉山| 含山县| 潍坊市| 阳西县| 昆明市| 长丰县| 集安市| 酒泉市| 龙门县| 延安市| 济南市| 靖西县| 奈曼旗| 安新县| 黄山市| 永泰县| 河间市| 商河县| 大悟县| 分宜县| 安塞县| 新竹县| 勃利县| 丰台区| 宁河县| 桐庐县| 宿迁市| 当涂县| 靖州| 科技| 新安县| 汕尾市| 鄂托克旗| 蒙山县| 海南省| 砀山县| 唐海县| 长泰县| 乐东| 梨树县|