X509證書(shū)信任管理器類的詳解

在JSSE中篓像,證書(shū)信任管理器類就是實(shí)現(xiàn)了接口X509TrustManager的類动知。我們可以自己實(shí)現(xiàn)該接口,讓它信任我們指定的證書(shū)员辩。

接口X509TrustManager有下述三個(gè)公有的方法需要我們實(shí)現(xiàn):

⑴ oid checkClientTrusted(X509Certificate[] chain, String authType)
throws CertificateException

該方法檢查客戶端的證書(shū)盒粮,若不信任該證書(shū)則拋出異常。由于我們不需要對(duì)客戶端進(jìn)行認(rèn)證奠滑,因此我們只需要執(zhí)行默認(rèn)的信任管理器的這個(gè)方法丹皱。JSSE中妒穴,默認(rèn)的信任管理器類為T(mén)rustManager。

⑵ oid checkServerTrusted(X509Certificate[] chain, String authType)
throws CertificateException

該方法檢查服務(wù)器的證書(shū)种呐,若不信任該證書(shū)同樣拋出異常宰翅。通過(guò)自己實(shí)現(xiàn)該方法,可以使之信任我們指定的任何證書(shū)爽室。在實(shí)現(xiàn)該方法時(shí)汁讼,也可以簡(jiǎn)單的不做任何處理,即一個(gè)空的函數(shù)體阔墩,由于不會(huì)拋出異常嘿架,它就會(huì)信任任何證書(shū)。

⑶ X509Certificate[] getAcceptedIssuers()

返回受信任的X509證書(shū)數(shù)組啸箫。

自己實(shí)現(xiàn)了信任管理器類耸彪,如何使用呢?類HttpsURLConnection似乎并沒(méi)有提供方法設(shè)置信任管理器忘苛。其實(shí)蝉娜,HttpsURLConnection通過(guò)SSLSocket來(lái)建立與HTTPS的安全連接,SSLSocket對(duì)象是由SSLSocketFactory生成的扎唾。HttpsURLConnection提供了方法setSSLSocketFactory(SSLSocketFactory)設(shè)置它使用的SSLSocketFactory對(duì)象召川。SSLSocketFactory通過(guò)SSLContext對(duì)象來(lái)獲得,在初始化SSLContext對(duì)象時(shí)胸遇,可指定信任管理器對(duì)象荧呐。下面用一個(gè)圖簡(jiǎn)單表示這幾個(gè)JSSE類的關(guān)系:

圖1 部分JSSE類的關(guān)系圖
  假設(shè)自己實(shí)現(xiàn)的X509TrustManager類的類名為:MyX509TrustManager,下面的代碼片斷說(shuō)明了如何使用MyX509TrustManager:

//創(chuàng)建SSLContext對(duì)象纸镊,并使用我們指定的信任管理器初始化
TrustManager[] tm = {new MyX509TrustManager ()};
SSLContext sslContext = SSLContext.getInstance("SSL","SunJSSE");
sslContext.init(null, tm, new java.security.SecureRandom());

//從上述SSLContext對(duì)象中得到SSLSocketFactory對(duì)象
SSLSocketFactory ssf = sslContext.getSocketFactory();

//創(chuàng)建HttpsURLConnection對(duì)象倍阐,并設(shè)置其SSLSocketFactory對(duì)象
HttpsURLConnection httpsConn = (HttpsURLConnection)myURL.openConnection();
httpsConn.setSSLSocketFactory(ssf);

這樣,HttpsURLConnection對(duì)象就可以正常連接HTTPS了逗威,無(wú)論其證書(shū)是否經(jīng)權(quán)威機(jī)構(gòu)的驗(yàn)證峰搪,只要實(shí)現(xiàn)了接口X509TrustManager的類MyX509TrustManager信任該證書(shū)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末凯旭,一起剝皮案震驚了整個(gè)濱河市罢艾,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌尽纽,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件童漩,死亡現(xiàn)場(chǎng)離奇詭異弄贿,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)矫膨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén)差凹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)期奔,“玉大人,你說(shuō)我怎么就攤上這事危尿∧琶龋” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵谊娇,是天一觀的道長(zhǎng)肺孤。 經(jīng)常有香客問(wèn)我,道長(zhǎng)济欢,這世上最難降的妖魔是什么赠堵? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮法褥,結(jié)果婚禮上茫叭,老公的妹妹穿的比我還像新娘。我一直安慰自己半等,他們只是感情好揍愁,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著杀饵,像睡著了一般莽囤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上凹髓,一...
    開(kāi)封第一講書(shū)人閱讀 51,292評(píng)論 1 301
  • 那天烁登,我揣著相機(jī)與錄音,去河邊找鬼蔚舀。 笑死饵沧,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的赌躺。 我是一名探鬼主播狼牺,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼礼患!你這毒婦竟也來(lái)了是钥?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤缅叠,失蹤者是張志新(化名)和其女友劉穎悄泥,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體肤粱,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡弹囚,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了领曼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鸥鹉。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蛮穿,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出毁渗,到底是詐尸還是另有隱情践磅,我是刑警寧澤,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布灸异,位于F島的核電站府适,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏绎狭。R本人自食惡果不足惜细溅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望儡嘶。 院中可真熱鬧喇聊,春花似錦、人聲如沸蹦狂。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)凯楔。三九已至窜骄,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間摆屯,已是汗流浹背邻遏。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留虐骑,地道東北人准验。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像廷没,于是被迫代替她去往敵國(guó)和親糊饱。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法颠黎,類相關(guān)的語(yǔ)法另锋,內(nèi)部類的語(yǔ)法,繼承相關(guān)的語(yǔ)法狭归,異常的語(yǔ)法夭坪,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 31,625評(píng)論 18 399
  • 國(guó)家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報(bào)批稿:20170802 前言: 排版 ...
    庭說(shuō)閱讀 10,967評(píng)論 6 13
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)过椎,斷路器台舱,智...
    卡卡羅2017閱讀 134,654評(píng)論 18 139
  • HTTPS,即安全的超文本傳輸協(xié)議,采用了SSL技術(shù)竞惋,被廣泛使用以保證Web應(yīng)用系統(tǒng)的安全性。訪問(wèn)Web應(yīng)用的編程...
    samychen閱讀 737評(píng)論 0 0
  • #幸福是需要修出來(lái)的~每天進(jìn)步1%~幸福實(shí)修13班~18號(hào)賈雙紅# 20171129 (2/60) 【幸福三朵玫瑰...
    幸福實(shí)修賈雙紅閱讀 263評(píng)論 3 0