Https自定義證書引入問題(3)

前面我們面對https自簽證書的方式是在客戶端放入一份服務器的證書文件熊响,在訪問網(wǎng)絡的情況下使用去驗證猾编。但是實際上通過瀏覽器訪問時逝薪,如果該網(wǎng)站為HTTPS網(wǎng)站缚窿,瀏覽器會自動檢測系統(tǒng)中是否存在該網(wǎng)站的信任證書, 如果沒有信任證書盛杰,瀏覽器一般會拒絕訪問但是也會有一個繼續(xù)訪問的操作挽荡,但地址欄是紅色,給予用戶警示作用即供, 即客戶端驗證服務端并不是強制性的定拟,可以沒有服務端的信任證書,當然是否繼續(xù)訪問完全取決于用戶自己逗嫡。 如果要去除地址欄的紅色警告,需要導入服務端提供的證書到瀏覽器中青自。

雙向認證即服務端要驗證客戶端的證書,客戶端要驗證服務端的證書驱证,缺一不可延窜。前面的方式等同于只做了客戶端驗證服務端的證書,現(xiàn)在我們要加上一個證書在客戶端抹锄,在訪問的時候帶上這個證書逆瑞,如果這個客戶端的證書在服務器的證書庫中荠藤,則驗證通過,可以繼續(xù)訪問获高,反之無法顯示頁面哈肖,因為服務器無法向客戶端一樣自己選擇信任該客戶端所以無法繞過。

assets目錄下的證書文件

appClient.p12 客戶端的證書

appServer.p12 服務端的證書 證書類型都是PKCS12

配置證書的代碼如下

private OkHttpClient.BuildersetCertificates1(OkHttpClient.Builder client, InputStream... certificates) {

try {

// 服務器端需要驗證的客戶端證書 PKCS12

        keyStore = KeyStore.getInstance(KEY_STORE_TYPE_P12);

        // 客戶端信任的服務器端證書

        trustStore = KeyStore.getInstance(KEY_STORE_TYPE_P12);

        InputStream ksIn = getAssets().open("appClient.p12");

        InputStream tsIn = getAssets().open("appServer.p12");

        try {

keyStore.load(ksIn, clientPasssword.toCharArray());

            trustStore.load(tsIn, serverPassword.toCharArray());

        }catch (Exception e) {

e.printStackTrace();

        }finally {

try {

ksIn.close();

            }catch (Exception ignore) {

}

try {

tsIn.close();

            }catch (Exception ignore) {

}

}

SSLContext sslContext = SSLContext.getInstance("TLS");

        TrustManagerFactory trustManagerFactory =

TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());

        trustManagerFactory.init(trustStore);

        KeyManagerFactory keyManagerFactory=KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());

        keyManagerFactory.init(keyStore,clientPasssword.toCharArray());

        sslContext.init(keyManagerFactory.getKeyManagers(), trustManagerFactory.getTrustManagers(), new SecureRandom());

        SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();

        X509TrustManager trustManager = Platform.get().trustManager(sslSocketFactory);

        client.sslSocketFactory(sslSocketFactory, trustManager);

    }catch (KeyManagementException e) {

e.printStackTrace();

    }catch (UnrecoverableKeyException e) {

e.printStackTrace();

    }catch (KeyStoreException e) {

e.printStackTrace();

    }catch (FileNotFoundException e) {

e.printStackTrace();

    }catch (NoSuchAlgorithmException e) {

e.printStackTrace();

    }catch (Exception e){

e.printStackTrace();

    }

return client;

}
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末念秧,一起剝皮案震驚了整個濱河市淤井,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌摊趾,老刑警劉巖币狠,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異砾层,居然都是意外死亡漩绵,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門梢为,熙熙樓的掌柜王于貴愁眉苦臉地迎上來渐行,“玉大人轰坊,你說我怎么就攤上這事铸董。” “怎么了肴沫?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵粟害,是天一觀的道長。 經(jīng)常有香客問我颤芬,道長悲幅,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任站蝠,我火速辦了婚禮汰具,結果婚禮上,老公的妹妹穿的比我還像新娘菱魔。我一直安慰自己留荔,他們只是感情好,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布澜倦。 她就那樣靜靜地躺著聚蝶,像睡著了一般。 火紅的嫁衣襯著肌膚如雪藻治。 梳的紋絲不亂的頭發(fā)上碘勉,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天,我揣著相機與錄音桩卵,去河邊找鬼验靡。 笑死倍宾,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的胜嗓。 我是一名探鬼主播凿宾,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼兼蕊!你這毒婦竟也來了初厚?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤孙技,失蹤者是張志新(化名)和其女友劉穎产禾,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體牵啦,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡亚情,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了哈雏。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片楞件。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖裳瘪,靈堂內(nèi)的尸體忽然破棺而出土浸,到底是詐尸還是另有隱情,我是刑警寧澤彭羹,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布黄伊,位于F島的核電站,受9級特大地震影響派殷,放射性物質(zhì)發(fā)生泄漏还最。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一毡惜、第九天 我趴在偏房一處隱蔽的房頂上張望拓轻。 院中可真熱鬧,春花似錦经伙、人聲如沸扶叉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽辜梳。三九已至,卻和暖如春泳叠,著一層夾襖步出監(jiān)牢的瞬間作瞄,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工危纫, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留宗挥,地道東北人乌庶。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像契耿,于是被迫代替她去往敵國和親瞒大。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353

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

  • 原文地址 http://blog.csdn.net/u012409247/article/details/4985...
    0fbf551ff6fb閱讀 3,521評論 0 13
  • 一搪桂、作用 不使用SSL/TLS的HTTP通信透敌,就是不加密的通信。所有信息明文傳播踢械,帶來了三大風險酗电。 (1)竊聽風險...
    XLsn0w閱讀 10,527評論 2 44
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn)内列,斷路器撵术,智...
    卡卡羅2017閱讀 134,651評論 18 139
  • 原文: 高性能網(wǎng)絡瀏覽器-第四章傳輸層安全性(Transport Layer Security,TLS) 翻譯: ...
    夢很想家閱讀 4,617評論 2 6
  • 一、http和https的區(qū)別 引用度娘的一段話 HTTPS和HTTP的區(qū)別 超文本傳輸協(xié)議HTTP協(xié)議被用于在W...
    Zoneday閱讀 706評論 0 2