亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java HTTPS請求失敗排查與證書導(dǎo)入的全過程

 更新時間:2025年08月03日 10:43:52   作者:XMYX-0  
在實際項目部署中,我們可能會遇到 Java 應(yīng)用調(diào)用某個 HTTPS 接口失敗,特別是涉及公司網(wǎng)關(guān)或 WAF 防護設(shè)備時,問題常常集中在 SSL/TLS 證書驗證失敗上,本文記錄一次完整的排查過程,并給出相關(guān)知識點補充,需要的朋友可以參考下

引言

在實際項目部署中,我們可能會遇到 Java 應(yīng)用調(diào)用某個 HTTPS 接口失敗,特別是涉及公司網(wǎng)關(guān)(如 www.test.com)或 WAF 防護設(shè)備時,問題常常集中在 SSL/TLS 證書驗證失敗上。本文記錄一次完整的排查過程,并給出相關(guān)知識點補充。

問題背景

Java 應(yīng)用通過 java.net.HttpURLConnection 或 RestTemplate 等方式請求接口 https://www.test.com,卻出現(xiàn)如下異常:

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

問題初步分析

該錯誤表明 Java 無法信任目標服務(wù)的 HTTPS 證書。常見原因有:

  • 服務(wù)端證書是自簽名(Self-signed)
  • 服務(wù)端證書鏈不完整
  • Java SDK 默認的 cacerts 信任庫中缺少對應(yīng)根證書或中間證書

特別注意:Java 不使用系統(tǒng)證書庫,而是依賴其內(nèi)置的 cacerts 信任庫。

排查過程

查看目標地址證書

openssl s_client -connect www.test.com:443 -showcerts

可以看到目標返回了一整套證書鏈,包括:

  • 服務(wù)器證書(.crt)
  • 中間證書(可能有多個)
  • 根證書(部分環(huán)境不提供)

導(dǎo)入證書

你可能收到運維/安全團隊提供的證書文件,如:

www.test.com_public.crt
www.test.com_chain.crt
www.test.com.key

我們只需要 .crt 文件,通常導(dǎo)入 www.test.com_chain.crt 即可。

導(dǎo)入命令如下(以 JDK 默認 cacerts 為例):

keytool -importcert \
  -trustcacerts \
  -alias test-gateway \
  -file www.test.com_chain.crt \
  -keystore $JAVA_HOME/lib/security/cacerts \
  -storepass changeit

驗證證書是否導(dǎo)入成功

keytool -list -keystore $JAVA_HOME/lib/security/cacerts -storepass changeit | grep duola

輸出示例:

test-gateway, Jul 31, 2025, trustedCertEntry,

重啟應(yīng)用

# 這是走默認的cacerts信任庫
java -jar my-test-project-0.0.1-SNAPSHOT.jar
# 下邊是指定我們導(dǎo)入的信任庫
java -Djavax.net.ssl.trustStore=$JAVA_HOME/lib/security/cacerts -Djavax.net.ssl.trustStorePassword=changeit -jar my-test-project-0.0.1-SNAPSHOT.jar

此時如果請求成功,即可初步判定問題解決。

進一步驗證:是否真的是證書問題?

如果你懷疑是 WAF、CDN 等中間設(shè)備阻斷,可以用兩種方式驗證:

1. 瀏覽器訪問

瀏覽器訪問 https://www.test.com 是否提示 “證書不受信任”?如果沒有,一般說明服務(wù)器證書鏈是完整的,但 Java 環(huán)境中仍然缺少相應(yīng)的中間證書。

2. 抓包工具驗證(如 Charles、Wireshark)

查看 TLS 握手過程是否被中斷或中間設(shè)備返回自定義證書。

補充知識點

Java 中默認信任庫在哪里?

  • 路徑:$JAVA_HOME/lib/security/cacerts
  • 默認密碼:changeit

如果要刪除已導(dǎo)入證書?

keytool -delete -alias test-gateway -keystore $JAVA_HOME/lib/security/cacerts -storepass changeit

可否使用瀏覽器導(dǎo)出證書?

可以。在瀏覽器中點擊鎖圖標 → 查看證書 → 導(dǎo)出為 .crt 文件,然后再導(dǎo)入 Java 信任庫。

總結(jié)

這次排查證明:

Java HTTPS 請求失敗,通常不是網(wǎng)絡(luò)或 WAF 問題,而是 Java 缺少可信證書鏈中的中間證書。

解決方法也非常明確:

  1. 獲取目標服務(wù)的完整證書鏈
  2. 將鏈中缺失的證書導(dǎo)入 Java 的 cacerts 信任庫
  3. 重啟應(yīng)用驗證是否成功

如果你在實際部署中也遇到類似問題,不妨從證書入手,按圖索驥逐步排查。

生產(chǎn)上解決

證書等級提升,開始是從阿里云上夠買個人免費版證書,提升證書等級就行了

以上就是Java HTTPS請求失敗排查與證書導(dǎo)入的全過程的詳細內(nèi)容,更多關(guān)于Java HTTPS請求失敗與證書導(dǎo)入的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java中的Map接口實現(xiàn)類HashMap和LinkedHashMap詳解

    Java中的Map接口實現(xiàn)類HashMap和LinkedHashMap詳解

    這篇文章主要介紹了Java中的Map接口實現(xiàn)類HashMap和LinkedHashMap詳解,我們常會看到這樣的一種集合,IP地址與主機名,等,這種一一對應(yīng)的關(guān)系,就叫做映射,Java提供了專門的集合類用來存放這種對象關(guān)系的對象,需要的朋友可以參考下
    2024-01-01
  • HashMap 和 HashSet的區(qū)別

    HashMap 和 HashSet的區(qū)別

    本文主要介紹HashMap 和 HashSet的區(qū)別,這里整理了詳細的資料來說名兩者的區(qū)別,并說明如何使用該方法,有需要的小伙伴可以參考下
    2016-09-09
  • java線程的基礎(chǔ)實例解析

    java線程的基礎(chǔ)實例解析

    java中線程的基本方法的熟練使用是精通多線程編程的必經(jīng)之路,線程相關(guān)的基本方法有wait,notify,notifyAll,sleep,join,yield等,本文淺要的介紹一下它們的使用方式
    2021-06-06
  • java實現(xiàn)人民幣大小寫轉(zhuǎn)換方法分享

    java實現(xiàn)人民幣大小寫轉(zhuǎn)換方法分享

    本文介紹java人民幣數(shù)字大小寫轉(zhuǎn)換方法,代碼中有注釋,大家直接看代碼吧
    2014-01-01
  • Java動態(tài)代理分析及理解

    Java動態(tài)代理分析及理解

    這篇文章主要介紹了Java動態(tài)代理分析及理解的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • springboot security之前后端分離配置方式

    springboot security之前后端分離配置方式

    這篇文章主要介紹了springboot security之前后端分離配置方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • Spring Data JPA帶條件分頁查詢實現(xiàn)原理

    Spring Data JPA帶條件分頁查詢實現(xiàn)原理

    這篇文章主要介紹了Spring Data JPA帶條件分頁查詢實現(xiàn)原理,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • 淺談servlet中的request與response

    淺談servlet中的request與response

    下面小編就為大家?guī)硪黄獪\談servlet中的request與response。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參加。一起跟隨小編過來看看吧
    2016-07-07
  • Java反射的定義和用法詳解

    Java反射的定義和用法詳解

    Java中的反射是指在程序運行時動態(tài)地獲取和操作類、方法、屬性等元素的能力。它使得我們可以在程序運行時獲取一個類的信息,并對其進行操作,需要的朋友可以參考下
    2023-05-05
  • SpringBoot返回統(tǒng)一的JSON標準格式實現(xiàn)步驟

    SpringBoot返回統(tǒng)一的JSON標準格式實現(xiàn)步驟

    這篇文章主要介紹了SpringBoot返回統(tǒng)一的JSON標準格式,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08

最新評論