2014-05-09 214 views
0

我瞭解SSL證書的使用和必要性。我正在尋找關於http協議和SSL證書以及https和SSL證書之間關係的詳細解釋。使用AFNetworking進行SSL證書驗證

在AFNetworking中,定義_AFNETWORKING_ALLOW_INVALID_SSL_CERTIFICATES_允許無效證書。 假設此標誌未設置,庫默認情況下應拒絕無效證書。但是,如果服務器末端沒有安裝證書怎麼辦?我發現我可以使用http協議訪問沒有證書的服務器。

是否僅對https協議進行默認證書驗證?

我只想訪問那些帶有證書的服務器,哪些服務器可以通過http和https有效?這個功能是否需要?如果有,有可能嗎?

+0

如果是這樣,我會提交一份關於它的錯誤報告。你甚至不能和一個甚至沒有動手的服務器握手。 – CodaFi

+0

是的,你所說的最有意義。但我正在經歷一些不同的事情。 – Raj

回答

2

我想你不明白HTTP和HTTPS是關於:

  • HTTP是不加密與服務器通信會話協議。所有內容都以明文形式發送,並且也無法驗證服務器的真實性(即服務器響應的確是具有正確的主機名)。在這種情況下,服務器不需要SSL證書。
  • https要用於確保與服務器的通信已加密。爲此,服務器需要SSL證書,並且在通過HTTP會話發送任何內容之前,握手將發生,允許客戶端獲取服務器的SSL證書以加密發送的數據。所以SSL證書僅用於HTTPS連接。

根據所使用的SSL證書,還可以驗證服務器的真實性。所有的瀏覽器(除非您在應用程序中明確地更改此內容,否則默認在iOS上)將只接受已知證書頒發機構頒發的SSL證書。通過這種方式,您可以確定服務器確實位於您請求的主機名上。根據SSL證書,服務器的所有者也可能會被驗證(即服務器確實屬於它聲稱屬於的公司)。

+0

非常感謝。 – Raj