1. 背景與需求
近期在做ip切換的https訪問時,遇到了一些問題:客戶端如何進行https的證書驗證。
其實對於一般的專案基本都是做的單向驗證,即在客戶端證書或者host的驗證;對於金融、銀行相關的專案才會使用的雙向驗證,客戶端與服務端之間都要對彼此進行驗證,以防止中間人進行攻擊。
2.實現目標
3. 實現過程
public class sslsocketfactoryimp extends sslsocketfactory
public x509trustmanager gettrustmanager()
public sslsocketfactoryimp(keystore keystore) throws nosuchalgorithmexception, keymanagementexception
@override
public void checkservertrusted(x509certificate x509certificates, string s) throws certificateexception
@override
public x509certificate getacceptedissuers()
};sslcontext.init(null, new trustmanager, null);
}@override
public string getdefaultciphersuites()
@override
public string getsupportedciphersuites()
@override
public socket createsocket() throws ioexception
@override
public socket createsocket(socket socket, string host, int post, boolean autoclose) throws ioexception
@override
public socket createsocket(string s, int i) throws ioexception, unknownhostexception
@override
public socket createsocket(string s, int i, inetaddress inetaddress, int i1) throws ioexception, unknownhostexception
@override
public socket createsocket(inetaddress inetaddress, int i) throws ioexception
@override
public socket createsocket(inetaddress inetaddress, int i, inetaddress inetaddress1, int i1) throws ioexception
}
keystore truststore;
truststore = keystore.getinstance(keystore.getdefaulttype());
truststore.load(null, null);
sslsocketfactoryimp ssl = new sslsocketfactoryimp(keystore.getinstance(keystore.getdefaulttype()));
hostnameverifier hostnameverifier = new hostnameverifier()
};builder.sslsocketfactory(ssl.getsslcontext().getsocketfactory(), ssl.gettrustmanager()).hostnameverifier
(hostnameverifier);
上面只是簡單的記錄驗證host的方式,下面的文章會讓你收穫更多。
1. 阿里移動安全:android安全開發之安全使用https
2. **https中間人攻擊與證書校驗
3. android官方培訓課程 : 使用https與ssl
從letsencrypt申請https證書踩坑記
今天成功用let s encrypt 上搞定了https證書,整個過程參考這篇文章 結合本人在製作ssl證書的過程中踩的一些坑說一些注意點 整個流程如下 1.在伺服器上執行乙個程式獲取let s encrypt頒發的證書 2.配置nginx伺服器使用生成的證書 正文1.在伺服器執行乙個程式獲取let...
apache配置https使用阿里CA證書
除了阿里官方的教程說明之外,還需要新增虛擬主機配置如下 弄了半天總是是解決了 documentrot 路徑 servername www.xx.com c phpstudy phptutorial www youli options followsymlinks execcgi allowoverr...
Android訪問https鏈結
引子 在android開發過程中我們常常需要訪問https鏈結,如果直接進行訪問有時候會丟擲異常,因為有些證書無法通過檢測,為了能夠訪問我們需要信任所有的證書,其實這是不安全的,但是一般我們都是訪問自己的 後台所以這麼做也可以。解決方法 為了信任證書我們需要實現兩個介面 1 hostnameveri...