aandroid中https請求的雙向認證
雙向認證
雙向證書驗證:
首先對於雙向證書驗證,也就是說,客戶端有自己的密匙,並持有服務端的證書,服務端給客戶端傳送資料時,
需要將服務端的證書發給客戶端驗證,驗證通過才執行傳送資料,同樣,客戶端請求伺服器資料時,
也需要將自己的證書發給服務端驗證,通過才允許執行請求。
1.生成客戶端keystore,因為客戶端andoird不能用keystore格式的金鑰庫,所以先生成jks格式,再用portecle工具轉成bks格式
keytool -genkeypair -alias client -keyalg rsa -validity 3650 -keypass 123456 -storepass 123456 -keystore client.jks
2.生成服務端keystore
keytool -genkeypair -alias server -keyalg rsa -validity 3650 -keypass 123456 -storepass 123456 -keystore server.keystore
3.匯出客戶端證書
keytool -export -alias client -file client.cer -keystore client.jks -storepass 123456
4.匯出服務端證書
keytool -export -alias server -file server.cer -keystore server.keystore -storepass 123456
5.重點:證書交換
將客戶端證書匯入服務端keystore中,再將服務端證書匯入客戶端keystore中, 乙個keystore可以匯入多個證書,生成證書列表
生成客戶端信任證書庫(由服務端證書生成的證書庫)
keytool -import -v -alias server -file e:\ssl\server.cer -keystore e:\ssl\truststore.jks -storepass 123456
將客戶端證書匯入到伺服器證書庫(使得伺服器信任客戶端證書)
keytool -import -v -alias client -file e:\ssl\client.cer -keystore e:\ssl\server.keystore -storepass 123456
6.檢視證書庫中的全部證書
keytool -list -keystore e:\ssl\server.keystore -storepass 123456
7.配置伺服器
修改server.xml檔案
備註: - keystorefile:指定伺服器金鑰庫,可以配置成絕對路徑,如「d:/key/server.keystore」,
本例中是在tomcat目錄中建立了乙個名- 稱為key的資料夾,僅供參考。
- keystorepass:金鑰庫生成時的密碼
- truststorefile:受信任金鑰庫,和金鑰庫相同即可
- truststorepass:受信任金鑰庫密碼
8.用portecle工具,執行protecle.jar將client.jks和truststore.jks分別轉換成client.bks和truststore.bks,然後放到android客戶端的assert目錄下
執行protecle.jar--》開啟檔案選中client.jks,選擇tools-->change keystore type-->選擇bks,最後關閉儲存為client.bks
9.讀取client.bks,進行網路請求
通過上面的步驟生成的證書,客戶端需要用到的是client.bks(客戶端金鑰,用於請求的時候給伺服器來驗證身份之用)和truststore.bks(客戶端證書庫,
用於驗證伺服器端身份,防止釣魚)這兩個檔案.其中安卓端的證書型別必須要求是bks型別
10.下面給出sslcontext方式進行ssl認證的客戶端**
try
});
inputstream inputstream = conn.getinputstream();
string content = getstring(inputstream);
ioutils.close(inputstream);
showlog(content);
} catch (exception e)
Aandroid中https請求的單向認證
aandroid中https請求的單向認證 一 https 單向認證 1.給伺服器生成金鑰 keytool genkeypair alias skxy keyalg rsa validity 3650 keypass 123456 storepass 123456 keystore skxy.key...
請描述https的請求過程。
客戶端向伺服器發起https請求,連線到伺服器的443埠 伺服器端有乙個金鑰對,即公鑰 即數字證書 和私鑰,是用來進行非對稱加密使用的,伺服器端儲存著私鑰,不能將其洩露,公鑰可以傳送給任何人 伺服器將自己的公鑰傳送給客戶端 客戶端收到伺服器端的公鑰之後,檢查其合法性,如果發現發現公鑰有問題,那麼ht...
請描述https的請求過程
1 客戶端向伺服器發起https請求,連線到伺服器的443埠 2 伺服器端有乙個金鑰對,即公鑰 即數字證書 和私鑰,是用來進行非對稱加密使用的,伺服器端儲存著私鑰,不能將其洩露,公鑰可以傳送給任何人 3 伺服器將自己的公鑰傳送給客戶端 4 客戶端收到伺服器端的公鑰之後,檢查其合法性,如果發現發現公鑰...