2011-02-01 116 views
5

任何其他人在獲取舊iphone上的https請求時遇到問題。舊iphone上的HTTPS請求3g

從連接確實失敗,錯誤消息如下。

誤差theConnection:錯誤域= NSURLErrorDomain代碼= -1202「此服務器的證書無效,您可能正在連接到一個僞裝成一臺服務器。‘www.ourwesbite.co.uk’這可能把你的機密信息置於危險之中。「

的「ourwebsite」有一個有效的證書,也沒有任何新的iPhone/iPod touch或登記,只是最古老的iPhone會出現這個問題。

這會影響我的登錄工作,通過在用戶單擊確定連接錯誤後拋出連接錯誤,提醒登錄進程正常運行。但問題是它在登錄後影響UI。

所以非常想知道是否有其他人有這樣的問題與舊的iPhone。我的代碼沒有問題,因爲它可以在模擬器& ipad/4gen ipod touch上正常工作。

謝謝

+0

什麼iOS版iPhone 3G正在運行?你在執行異步NSURLConnection嗎? – fsaint 2011-02-01 10:03:05

回答

2

好,所以即使證書是有效的,它會拋出錯誤。所以使用NSURLConnection的下面的委託方法解決了這個問題。

-(void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge{ 

當對認證有挑戰時,它被調用。以下代碼允許它繼續使用https連接。

[challenge.sender useCredential:[NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust] forAuthenticationChallenge:challenge]; 

然後允許通過,如果它認爲它是不可信

8

我們有這個錯誤和iPhone 3G在問題有一個不正確的日期和時間設置連接。這意味着所有的SSL交易都會失敗。

我們認爲這個iOS錯誤是一個蘋果問題,不是我們的,所以黑客要忽略SSL證書不是解決方案!