Java如何跳過(guò)https的ssl證書驗(yàn)證詳解
打開腳本之家首頁(yè),明顯看到鏈接是https打頭,https和http的通信協(xié)議差別,在于https安全性更高:

http和https的差別
很明顯,二者最大的區(qū)別在于https多了一個(gè)ssl證書驗(yàn)證,可以說(shuō)https是身披SSL外殼的http。因?yàn)閔ttp存在如下缺陷:
1)通信使用明文,內(nèi)容可能被竊聽(重要密碼泄露)
2)不驗(yàn)證通信方身份,有可能遭遇偽裝(跨站點(diǎn)請(qǐng)求偽造)
3)無(wú)法證明報(bào)文的完整性,有可能已遭篡改(運(yùn)營(yíng)商劫持)
而https是利用SSL/TLS建立全信道,加密數(shù)據(jù)包。HTTPS使用的主要目的是提供對(duì)網(wǎng)站服務(wù)器的身份認(rèn)證,同時(shí)保護(hù)交換數(shù)據(jù)的隱私與完整性。

https握手過(guò)程(單向認(rèn)證)
補(bǔ)充:"SSL"證書和CA證書究竟有什么區(qū)別?
CA是數(shù)字證書管理機(jī)構(gòu),而SSL證書只是數(shù)字證書的一種,CA機(jī)構(gòu)簽發(fā)SSL證書,所以說(shuō),SSL是CA頒發(fā)的證書中的一種。
所以,從理論上來(lái)說(shuō),如果服務(wù)端采用https協(xié)議,而自己沒有ssl證書(服務(wù)端不提供ssl證書),那么通信是不可能成功的。所以,這里有兩個(gè)解決思路:
1、確認(rèn)是單向認(rèn)證還是雙向認(rèn)證,Server端是否校驗(yàn)Client端(存在這種情況,服務(wù)端雖采用https協(xié)議,但并不校驗(yàn)CA證書,如果需要校驗(yàn),那服務(wù)端至少得提供秘鑰)
2、可以忽略服務(wù)器證書校驗(yàn)(將hostname校驗(yàn)和CA證書校驗(yàn)同時(shí)關(guān)閉)
網(wǎng)上最常用的,就是利用jdk生成keyStore文件,該方法忽略服務(wù)器證書校驗(yàn)的方法,網(wǎng)上有很多示例,但是暫未找到可用的,先寫到這里吧。。。。。
在針對(duì)http進(jìn)行升級(jí)時(shí),在HTTPS的證書未經(jīng)權(quán)威機(jī)構(gòu)認(rèn)證的情況下,訪問(wèn)HTTPS站點(diǎn)的兩種方法,一種方法是把該證書導(dǎo)入到Java的TrustStore文件中,另一種是自己實(shí)現(xiàn)并覆蓋JSSE缺省的證書信任管理器類。兩種方法各有優(yōu)缺點(diǎn),第一種方法不會(huì)影響JSSE的安全性,但需要手工導(dǎo)入證書;第二種方法雖然不用手工導(dǎo)入證書,但需要小心使用,否則會(huì)帶來(lái)一些安全隱患。
**Java獲取url相關(guān)參數(shù)的幾個(gè)常用方法:**
1、request.getRequestURL()返回的是完整的url,包括Http協(xié)議,端口號(hào),servlet名字和映射路徑,但它不包含請(qǐng)求參數(shù)。
2、request.getRequestURI()得到的是request URL的部分值,并且web容器沒有decode過(guò)的
3、request.getContextPath() 返回the context of the request.
4、request.getServletPath()返回調(diào)用servlet的部分url.
5、request.getQueryString()返回url路徑后面的查詢字符串
示例:
當(dāng)前url:http://localhost:8080/CarsiLogCenter_new/idpstat.jsp?action=idp.sptopn
request.getRequestURL() --http://localhost:8080/CarsiLogCenter_new/idpstat.jsp request.getRequestURI() -- /CarsiLogCenter_new/idpstat.jsp request.getContextPath() --/CarsiLogCenter_new request.getServletPath() -- /idpstat.jsp request.getQueryString() --action=idp.sptopn
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
利用Spring IOC技術(shù)實(shí)現(xiàn)用戶登錄驗(yàn)證機(jī)制
這篇文章主要為大家詳細(xì)介紹了Spring IOC技術(shù)實(shí)現(xiàn)用戶登錄驗(yàn)證機(jī)制的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10
Spring Security自定義認(rèn)證器的實(shí)現(xiàn)代碼
這篇文章主要介紹了Spring Security自定義認(rèn)證器的實(shí)現(xiàn)代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06
SpringBoot整合RabbitMQ消息隊(duì)列的完整步驟
這篇文章主要給大家介紹了關(guān)于SpringBoot整合RabbitMQ消息隊(duì)列的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05
SpringMVC實(shí)現(xiàn)表單驗(yàn)證功能詳解
這篇文章主要為大家詳細(xì)介紹了SpringMVC 表單驗(yàn)證的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10
SpringBoot+Jersey跨域文件上傳的實(shí)現(xiàn)示例
在SpringBoot開發(fā)后端服務(wù)時(shí),我們一般是提供接口給前端使用,本文主要介紹了SpringBoot+Jersey跨域文件上傳的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下2024-07-07
詳解JAVA序列化及實(shí)際應(yīng)用場(chǎng)景分析
序列化就是將對(duì)象轉(zhuǎn)換為可以存儲(chǔ)或傳輸?shù)男问?以實(shí)現(xiàn)對(duì)象持久化存儲(chǔ)到磁盤中,或者在網(wǎng)絡(luò)中傳輸,這篇文章介紹JAVA序列化及實(shí)際應(yīng)用場(chǎng)景分析,感興趣的朋友跟隨小編一起看看吧2024-12-12

