我希望能夠獲得ssl證書(如果可能,請鏈+),以便能夠顯示專有名稱並確定它是否爲EV證書。 (通過證書策略(wikipedia)如何在iOS中檢索ssl服務器證書?
從我見過你只能得到帶有一些證書的詳細信息,如果該證書是自簽名的檢測
EV證書。有可能使用像CFNetwork的下層檢索證書(S)?
我希望能夠獲得ssl證書(如果可能,請鏈+),以便能夠顯示專有名稱並確定它是否爲EV證書。 (通過證書策略(wikipedia)如何在iOS中檢索ssl服務器證書?
從我見過你只能得到帶有一些證書的詳細信息,如果該證書是自簽名的檢測
EV證書。有可能使用像CFNetwork的下層檢索證書(S)?
通過macnetworkprog.lists.apple.com郵件列表 http://web.archiveorange.com/archive/v/x0fiWEI9emJFc36DY0UP,並提到在開發者論壇的幾個地方
那麼,默認TLS安全策略應該是足夠了,但如果 你想涉足這個過程中,你可以這樣做(在iPhone OS 3.0及更高版本,以及Mac OS X 10.6)通過實施
-connection:canAuthenticateAgainstProtectionSpace:
和-connection:didReceiveAuthenticationChallenge:
代表回調, 尋找NSURLAuthenticationMethodServerTrust
驗證 方法。
要做到這一點:
落實-connection:canAuthenticateAgainstProtectionSpace:
委託回調。
在您的實現中,如果 保護空間的身份驗證方法是NSURLAuthenticationMethodServerTrust
,你有 兩種選擇:
2A。返回NO
,並讓默認的TLS算法踢入。
2b。返回YES
,在這種情況下,您的-connection:didReceiveAuthenticationChallenge:
委託回調將被調用。
如果你想看看證書,你作出這樣的 決定,可以在保護空間對象調用-serverTrust
到 得到信任的對象,然後使用SecTrust API得到 前證書鏈。
如果採取路徑2b,則會調用您的-connection:didReceiveAuthenticationChallenge:
委託回調。你有兩種選擇:
3a。通過在挑戰的發件人上呼叫-cancelAuthenticationChallenge:
來禁止連接。
3b。通過在質詢發件人處致電-useCredential:forAuthenticationChallenge:
來允許連接。要獲得證書,請致電-[NSURLCredential initWithTrust:]
。實際上,你在這裏傳遞的信任對象並不重要;來自保護區的人會做。
您不必同步執行此操作。您可以鎖定 挑戰並從您的委託回調中返回,然後在未來某個時間解決 挑戰。