android https 雙向驗證

2021-09-01 21:56:23 字數 4930 閱讀 5729

android ssl雙向驗證

預備工具「bcprov-jdk16-141.jar」和「portecle.jar」

將「bcprov-jdk16-141.jar」部署到jdk1.6.0_03\jre\lib\ext目錄下

1:伺服器端的金鑰庫

d:\a>keytool -genkey -alias 19emts -validity 365 -keyalg rsa -keysize 1024 -keypass 123456 -storepass 123456 -keystore 19emts.keystore

您的名字與姓氏是什麼?

[unknown]: 192.168.63.34 (注意這裡是主機名)

您的組織單位名稱是什麼?

[unknown]: 19e

您的組織名稱是什麼?

[unknown]: 19e

您所在的城市或區域名稱是什麼?

[unknown]: beijing

您所在的州或省份名稱是什麼?

[unknown]: beijing

該單位的兩字母國家**是什麼

[unknown]: cn

cn=192.168.63.34:9080, ou=19e, o=19e, l=beijing, st=beijing, c=cn 正確嗎?

[否]: y

2:客戶端的金鑰庫

d:\a>keytool -genkey -alias 19emtc -validity 365 -keyalg rsa -keysize 1024 -keypass 123456 -storepass 123456 -keystore 19emtc.p12 -storetype pkcs12

您的名字與姓氏是什麼?

[unknown]: 19e

您的組織單位名稱是什麼?

[unknown]: 19e

您的組織名稱是什麼?

[unknown]: 19e

您所在的城市或區域名稱是什麼?

[unknown]: beijing

您所在的州或省份名稱是什麼?

[unknown]: beijing

該單位的兩字母國家**是什麼

[unknown]: cn

cn=19e, ou=19e, o=19e, l=beijing, st=beijing, c=cn 正確嗎?

[否]: y

3:匯出伺服器端證書

d:\a>keytool -export -file service.cer -keystore 19emts.keystore -alias 19emts

4:匯出客戶端證書

d:\a>keytool -export -file client.cer -keystore 19emtc.p12 -alias 19emtc -storetype pkcs12

5:將客戶端證書匯入伺服器信任證書庫

d:\a>keytool -import -file client.cer -keystore 19emts.keystore -alias 19emtc

輸入keystore密碼:

所有者:cn=z, ou=j, o=z, l=bj, st=bj, c=cn

簽發人:cn=z, ou=j, o=z, l=bj, st=bj, c=cn

序列號:52de290d

有效期: tue jan 21 16:00:13 cst 2014 至wed jan 21 16:00:13 cst 2015

證書指紋:

md5:6e:23:29:d5:7a:13:e9:d6:7d:2c:30:62:7a:cc:9b:3f

sha1:f9:c0:0d:d6:7c:13:98:2c:df:a3:80:de:4f:02:aa:d3:9e:31:ec:a6

簽名演算法名稱:sha1withrsa

版本: 3

信任這個認證? [否]: y

認證已新增至keystore中

7:ie驗證證書是否正確

雙擊「19emtc.p12」和「service.cer」載入證書

8:伺服器端配置

10:由於android平台證書庫只支援bks格式所以需要借助portecle.jar將19emtc.p12轉換成bks格式

10.1 開啟portecle.jar,新建bks格式的證書庫,並從「19emtc.p12」檔案匯入金鑰對

12.2 儲存檔案為「client.bks」

11: 匯入伺服器端證書「service.cer」到「client.bks」中

d:\a>keytool -import -file service.cer -keystore client.bks -storetype bks -provider org.bouncycastle.jce.provider.bouncycastleprovider

輸入keystore密碼:

所有者:cn=192.168.63.34, ou=19e, o=19e, l=bj, st=bj, c=cn

簽發人:cn=192.168.63.34, ou=19e, o=19e, l=bj, st=bj, c=cn

序列號:52de28e3

有效期: tue jan 21 15:59:31 cst 2014 至wed jan 21 15:59:31 cst 2015

證書指紋:

md5:5f:65:53:14:47:4a:72:d5:9d:ce:eb:91:e9:9d:c8:85

sha1:20:67:31:da:06:55:35:d8:0a:2a:8e:f5:3e:2d:7a:47:8a:02:ff:5a

簽名演算法名稱:sha1withrsa

版本: 3

信任這個認證? [否]: y

認證已新增至keystore中

12:將「client.bks」檔案放入android專案的「assets」資料夾下

13:客戶端**

}14:大功告成.

備註:可不生成pkcs12格式的證書庫檔案,直接生成bks格式的證書檔案但是不能進行ie驗證

命令為:

d:\a>keytool -genkey -alias 19emtc -validity 365 -keyalg rsa -keysize 1024 -keypass 123456 -storepass 123456 -keystore 19emtc.bks -storetype bks -provider org.bouncycastle.jce.provider.bouncycastleprovider

您的名字與姓氏是什麼?

[unknown]: 19e

您的組織單位名稱是什麼?

[unknown]: 19e

您的組織名稱是什麼?

[unknown]: 19e

您所在的城市或區域名稱是什麼?

[unknown]: bj

您所在的州或省份名稱是什麼?

[unknown]: bj

該單位的兩字母國家**是什麼

[unknown]: cn

cn=19e, ou=19e, o=19e, l=bj, st=bj, c=cn 正確嗎?

[否]: y

d:\a>

然後將伺服器端信任檔案匯入即可

Android Https原理詳解

非對稱加密,客戶端將公鑰加密後的資料傳送給伺服器,伺服器用對應的私鑰解密。安全性高,但是加解密的效率低。https同時採用了非對稱加密和對稱加密的方法來保證通訊通道的安全。注意這裡有乙個思維誤區,https保證的是通訊通道的安全,至於兩端,這種通訊模型本身就是假設兩端是安全的。服務端通常不用擔心,能...

深入理解 Android Https

用私鑰加密資訊,用公鈅來解密。因為公鑰是共有的,這種流程用於認證。c用s的公鑰把資訊加密後傳遞給s.s用自己的私鑰解密獲取資訊。常用的非對稱加密演算法有rsa elgamal rabin d h ecc 橢圓曲線加密演算法 等。配置 設定簽名證書 建立tls型別的sslcontext物件,that ...

crossvalind Matlab 交叉驗證

matlab 交叉驗證 rel noopener noreferrer crossvalind matlab 交叉驗證 lujingyang1029 今天用到crossvalind.這個適用於crossvalidation。中文應該叫做交叉驗證。我主要想說說這個函式怎麼用的。舉個簡單的例子 p tr...