iOS не дает вам очень детального доступа к информации о сертификате. У вас есть два варианта: частные API или создать свой собственный оценщик с OpenSSL.
Вы можете увидеть функции частного сертификата в коде с открытым исходным кодом . Версия доступна от SecCertificateVersion()
. Я не уверен, что вы подразумеваете здесь под «типом проверки».
Чтобы сделать это с OpenSSL, вы можете получить данные DER с помощью SecCertificateCopyData()
, а затем проанализировать все самостоятельно.
Я предлагаю открыть радар (bugreporter.apple.com) по этому вопросу. Отсутствие доступа к основной информации о сертификате является серьезной проблемой.
Если вы ищете пример кода, который извлекает сертификат из NSURLConnection
, см. Глава 11 пример кода из iOS: PTL :
- (void)connection:(NSURLConnection *)connection
willSendRequestForAuthenticationChallenge:
(NSURLAuthenticationChallenge *)challenge
{
NSURLProtectionSpace *protSpace = challenge.protectionSpace;
SecTrustRef trust = protSpace.serverTrust;
...
SecCertificateRef cert = SecTrustGetCertificateAtIndex(trust, 0);
...
На данный момент cert
содержит ваш листовой сертификат.