簡體   English   中英

Https iOS帶有自簽名證書

[英]Https iOS with self signed certificate

我有一個帶有自簽名證書的服務器。 我想用https格式將我的設備連接到服務器。 我聽說我必須接受聯系。 但我不知道怎么做。 我有一個自簽名證書,因為它是一個測試服務器。 但我想用https格式訪問它? 當我嘗試使用https訪問時出現錯誤:

SURLConnection/CFURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813)

然后它是一個自簽名證書。

有人可以幫幫我嗎?

默認情況下,Cocoa在證書無效時拒絕所有SSL連接。

但是,您可以強制它們也接受無效的證書。 該方法取決於您使用的庫/框架。 例如:

  • 對於NSURLConnection,請檢查此答案
  • 對於ASIHTTPRequest,您需要將屬性validatesSecureCertificate設置為NO。
  • 對於AFNetworking,您可以檢查要在此頁面中使用的代碼
  • 對於CFNetwork,低級Foundation框架,請查看此示例代碼
  • 對於看起來像您正在使用的SURLConnection,您需要遵循NSURLConnection的相同說明。 實際上,SURLConnection只是NSURLConnection的一個子類。

重要的提示:
上面的代碼,即使無效,接受任何類型的SSL證書都是一個嚴重的安全風險。 基本上,它使整個SSL無用。 因此,如果您確實需要使用SSL連接進行測試,則應僅在開發期間使用該代碼。
另請注意,Apple將拒絕提交給App Store的任何接受無效SSL證書的申請。

證書配置:

您必須在設備上安裝自簽名證書CA ,以便設備信任它,然后只有設備信任SSL連接。

在安裝自簽名證書的情況下,請確保URL的 域名 與證書的 公用名稱相同。

如果沒有域名,那么IP地址就可以了。

證書安裝:

您可以將其托管在Web服務器上並嘗試從safari訪問它,然后iOS將提示在iOS設備中安裝證書

證書創建:

以下是創建自簽名證書的方法,以便您可以在Web服務器中填寫所有詳細信息和主機。

openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 1001 -nodes

(輸入Common Name的值時要注意)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM