आईओएस आपको प्रमाणपत्र जानकारी के लिए बहुत बारीक पहुंच प्रदान नहीं करता है। आपके पास दो विकल्प हैं: निजी एपीआई या ओपनएसएसएल के साथ अपना खुद का मूल्यांकनकर्ता बनाएं।
आप opensource code में निजी प्रमाणपत्र फ़ंक्शन देख सकते हैं। संस्करण SecCertificateVersion()
से उपलब्ध है। मुझे यकीन नहीं है कि आपका मतलब "सत्यापन प्रकार" से क्या है।
ओपनएसएसएल के साथ ऐसा करने के लिए, आप SecCertificateCopyData()
के साथ डीईआर डेटा प्राप्त कर सकते हैं और फिर अपने आप को सब कुछ पार्स कर सकते हैं।
मैं इस मुद्दे पर एक रडार (bugreporter.apple.com) खोलने का सुझाव देता हूं। प्रमाण पत्र के बारे में मूलभूत जानकारी तक पहुंच की कमी एक गंभीर समस्या है।
आप नमूना कोड है कि NSURLConnection
से प्रमाण पत्र के अर्क के लिए देख रहे हैं, को देखने के Chapter 11 sample codeiOS:PTL से:
- (void)connection:(NSURLConnection *)connection
willSendRequestForAuthenticationChallenge:
(NSURLAuthenticationChallenge *)challenge
{
NSURLProtectionSpace *protSpace = challenge.protectionSpace;
SecTrustRef trust = protSpace.serverTrust;
...
SecCertificateRef cert = SecTrustGetCertificateAtIndex(trust, 0);
...
इस बिंदु पर, cert
अपने पत्ता प्रमाणपत्र रखती है।
स्रोत
2012-02-23 15:19:32
आपके सुझाव के लिए धन्यवाद। "सत्यापन प्रकार" का अर्थ है कि URL पर एसएसएल का सत्यापन प्रकार लागू किया गया है, या तो मानक या विस्तारित सत्यापन। यहां मैंने "अध्याय 11 नमूना कोड" में दिए गए कोड का उपयोग किया है, लेकिन जब मैं ऐप बनाने की कोशिश कर रहा हूं, तो मुझे संकलन समय त्रुटियां मिल रही हैं -> आर्किटेक्चर i386: "_SecPolicyCreateBasicX509" के लिए अपरिभाषित प्रतीक, संदर्भित: _RNSecTrustEvalaluAsX509 में ConnectionViewController.o, "_SecCertificateNotValidAfter", से संदर्भित: - [कनेक्शनव्यू कंट्रोलर कनेक्शन: willSendRequestForAuthenticationChallenge:] ConnectionViewController.o – iLearner
में आपको सुरक्षा.फ्रेमवर्क को लिंक करने की आवश्यकता है। –