Невозможно доверять самозаверяющему сертификату на iphone

В настоящее время я пытаюсь подключиться к серверу с самозаверяющим сертификатом. Я использую NSURLConnection для подключения к серверу. Как я могу быть уверен, что доверяю только нужному серверу и отменяю все остальные подключения? Я использую следующий код

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

    SecTrustResultType results;
    SecTrustRef trust = [[challenge protectionSpace] serverTrust];

    SecTrustEvaluate(trust, &results);

    if (results == kSecTrustResultProceed || results == kSecTrustResultConfirm) {
        [challenge.sender useCredential:[NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust] forAuthenticationChallenge:challenge];
    } else {
        [challenge.sender cancelAuthenticationChallenge:challenge];
    }

}

В настоящее время SecTrustEvaluate всегда возвращает с результатами, равными kSecTrustResultRecoverableTrustFailure . Я установил профиль конфигурации с сертификатом на телефон с помощью утилиты конфигурации iphone, и он помечен как проверенный, но это не изменило результаты.

Может ли кто-нибудь помочь мне получить результат доверия либо kSecTrustResultProceed или kSecTrustResultConfirm для самозаверяющего сертификата?

7
задан Zach Bolton 25 August 2010 в 00:32
поделиться