首頁 後端開發 C#.Net教程 httpclient傳送資料建立SSL連線時向HTTPS的異常

httpclient傳送資料建立SSL連線時向HTTPS的異常

Dec 20, 2016 pm 03:08 PM
SUN security

異常訊息如下:

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertget 完成.

原因:伺服器的憑證不被信任。一般是這樣造成的。

使用KEYTOOL工具建立證書,然後用TOMCAT啟動後,在瀏覽器開啟網站時,會出現證書不被信任的提示。當然,利用HTTPCLIENT向服務端HTTPS傳送資料時,HTTPCLIENT也會偵測服務端的憑證是否被信任,不被信任就拋出上面的例外。

解決辦法有兩種,一種是讓憑證被客戶端信任。另一種是使用HTTPCLIENT傳送資料時不偵測伺服器憑證是否可信。

 

第一種辦法,使證書被信任。

 

找正規CA簽發證書,或是自己簽發證書(只能那一台客戶機上可信)。找正規CA簽發證書就不說了,自己簽發證書呢,見我的其他文章。

 

我發現,自己簽署的憑證弄好之後,從客戶端開啟服務端位址時,不再提示上面的錯誤,但是還是不能傳送資料。原因是什麼呢?因為那台憑證在客戶端作業系統上可信,但是在JAVA的KEYSTORE裡不可信,要把服務端的憑證導入KEYSTORE庫中

 

導入辦法:

打開命令列窗口,並到libsecurity 目錄下,執行下面的指令:

keytool -import -noprompt -keystore cacerts -storepass changeit -alias yourEntry1 -file your.cer

 

 

要注意的是,如果客戶端電腦上裝有許多個JAVA版本,要確定你導入的證書的JAVA版本是你TOMCAT使用的那個,一般TOMCAT使用的是環境變量指向的那個JAVA版本。

如果是在ECLIPSE中建立的TOMCAT伺服器,新建時會要你選擇預設JRE還是指向的JAVA,這裡一定要選指向剛才導入的那個JAVA的路徑,不然,你導入的憑證庫也沒效果。

 

第二種辦法,使用HTTPCLIENT時不檢測伺服器憑證是否可信任

 

擴充HttpClient 類實作自動接受憑證

 

因為此方法接收所有安全性, 

所以在使用這種方法前請仔細考慮您的系統的安全需求。具體的步驟如下:

 

•提供一個自訂的socket factory (test.MySecureProtocolSocketFactory )。這個自訂的類別必須實作介面org.apache.commons.httpclient.protocol.SecureProtocolSocketFactory ,在實作介面的類別中呼叫自訂的X509TrustManager(test.MyX509TrustManager) ,這兩個類別可以在隨本文帶的配件中得到

•建立一個org.apache.commons.httpclient.protocol.Protocol 的實例,指定協定名稱和預設的連接埠號碼

Protocol myhttps = new Protocol("https", new MySecureProtocolSocketet (Factory), 443);

•註冊剛剛建立的https 協定物件

Protocol.registerProtocol("https ", myhttps);

 

•然後依照一般程式設計 方式開啟https 的目標地址,程式碼如下:

•然後依照一般程式設計 方式打開

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1666
14
CakePHP 教程
1425
52
Laravel 教程
1328
25
PHP教程
1273
29
C# 教程
1253
24
解決kernel_security_check_failure藍色畫面的17種方法 解決kernel_security_check_failure藍色畫面的17種方法 Feb 12, 2024 pm 08:51 PM

Kernelsecuritycheckfailure(內核檢查失敗)就是一個比較常見的停止代碼類型,可藍屏錯誤出現不管是什麼原因都讓很多的有用戶們十分的苦惱,下面就讓本站來為用戶們來仔細的介紹一下17種解決方法吧。 kernel_security_check_failure藍色畫面的17種解決方法方法1:移除全部外部裝置當您使用的任何外部裝置與您的Windows版本不相容時,則可能會發生Kernelsecuritycheckfailure藍色畫面錯誤。為此,您需要在嘗試重新啟動電腦之前拔下全部外部裝置。

Flask-Security: 在Python web應用程式中新增使用者驗證和密碼加密 Flask-Security: 在Python web應用程式中新增使用者驗證和密碼加密 Jun 17, 2023 pm 02:28 PM

Flask-Security:在Pythonweb應用程式中添加用戶身份驗證和密碼加密隨著互聯網的不斷發展,越來越多的應用程式需要用戶身份驗證和密碼加密來保護用戶資料的安全性。而在Python語言中,有一個非常流行的Web架構-Flask。 Flask-Security是基於Flask框架的擴充庫,它可以幫助開發人員在Pythonweb應用程式中輕

Nginx Proxy Manager安全性分析與防護 Nginx Proxy Manager安全性分析與防護 Sep 28, 2023 pm 01:30 PM

NginxProxyManager安全性分析與防護引言:在網路應用中,安全性一直是至關重要的問題。作為一款強大的反向代理和負載平衡伺服器軟體,Nginx在保障網路應用安全上扮演著重要的角色。然而,隨著網路技術的不斷發展,網路攻擊日益增多,如何保障NginxProxyManager的安全性成為了亟待解決的問題。本文將從NginxProxyMana

Spring Security權限控制框架使用指南 Spring Security權限控制框架使用指南 Feb 18, 2024 pm 05:00 PM

在後台管理系統中,通常需要存取權限控制,以限制不同使用者對介面的存取能力。如果使用者缺乏特定權限,則無法存取某些介面。本文將用waynboot-mall專案舉例,跟大家介紹常見後管系統如何引入權限控制框架SpringSecurity。大綱如下:waynboot-mall專案網址:https://github.com/wayn111/waynboot-mall一、什麼是SpringSecuritySpringSecurity是一個基於Spring框架的開源項目,旨在為Java應用程式提供強大且靈活的安

鯨魚地址繼續拋售SUN,引發投資人擔憂 鯨魚地址繼續拋售SUN,引發投資人擔憂 Sep 13, 2024 pm 09:11 PM

先前卸載了大量 SUN 的大型鯨魚地址在過去兩個小時內又出售了價值 100 萬美元的代幣。

BubblePal 兒童人工智慧伴侶玩具推出,概念與科幻電影 M3GAN 驚人相似 BubblePal 兒童人工智慧伴侶玩具推出,概念與科幻電影 M3GAN 驚人相似 Aug 15, 2024 pm 12:53 PM

BubblePal 是一款新推出的基於人工智慧的互動玩具,如果它不是上週剛推出的話,它似乎可能會為 2022 年科幻/恐怖電影 M3GAN 的編劇帶來靈感。基於大語言模型(LLM)技術,‘

BubblePal AI 兒童伴侶玩具推出,概念與 M3GAN 類似 BubblePal AI 兒童伴侶玩具推出,概念與 M3GAN 類似 Aug 14, 2024 pm 09:58 PM

BubblePal 是一款新推出的基於人工智慧的互動玩具,如果它不是上週剛推出的話,它似乎可能會為 2022 年科幻/恐怖電影 M3GAN 的編劇帶來靈感。基於大語言模型(LLM)技術,‘

0.0.0.0 Day 漏洞暴露了 Chrome、Safari 和 Firefox 中已有 18 年之久的安全漏洞 0.0.0.0 Day 漏洞暴露了 Chrome、Safari 和 Firefox 中已有 18 年之久的安全漏洞 Aug 09, 2024 pm 12:42 PM

一個被稱為「0.0.0.0 Day」缺陷的存在 18 年的漏洞已被披露,該漏洞允許惡意網站繞過主要網路瀏覽器(包括 Google Chrome、Mozilla Firefox 和 Apple Safari)中的安全協議。缺陷主要是

See all articles