2010-05-04 5 views
4

Я нахожу все эти обходы для NSUrlConnection, которые используют закрытый API для доступа к SSL-сертификату, которому не доверяют. Другие параметры - установить сертификат сначала с помощью приложения Safari/Mail.SSL-сертификат для iPhone -> какой CA?

Я хотел бы знать, какие корневые сертификаты установлены, поэтому я могу получить один из доверенного ЦС, как вы предполагаете для этого ..

У кого-нибудь есть идея, какой CA мне нужен?

+0

могу ли я просто выбрать один из descri СА кровать здесь для Enterprise Deployment? http://support.apple.com/kb/HT3580 – StijnSpijker

ответ

3

Вот список доступных CA предварительно установленного на Iphone

http://support.apple.com/kb/HT2185

Вы можете получить свои сертификаты за подписью любого из этих органов или вы можете подписывать свои собственные сертификаты и создать свой собственный центр сертификации, используя OpenSSL

0

Вы можете фактически принять самоподписанный сертификат SSL с использованием открытого API:

- (BOOL)connection:(NSURLConnection *)connection canAuthenticateAgainstProtectionSpace:(NSURLProtectionSpace *)protectionSpace { 
    return [protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]; 
} 

- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge { 
    if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]) { 
     [challenge.sender useCredential:[NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust] forAuthenticationChallenge:challenge]; 
    } 

    [challenge.sender continueWithoutCredentialForAuthenticationChallenge:challenge]; 
}