मैं वर्तमान में NSURLConnection का उपयोग कर वेब सर्वर से एक https कनेक्शन खोलता हूं। सबकुछ काम करता है जैसा कि करना चाहिए और मैं उस पेज सामग्री को पुनः प्राप्त करने में सक्षम हूं जिसके बाद मैं हूं। प्रमाणपत्र VeriSign द्वारा जारी किया गया है और मुझे लगता है कि NSURLConnection कुछ हद तक प्रमाण पत्र की प्रामाणिकता को सत्यापित करने के लिए कुछ काम करता है? यदि मैं मोबाइल सफारी के माध्यम से एक ही वेबसाइट से जुड़ा हूं तो यह प्रमाणपत्र से निकालेगा, और नेविगेशन बार में संगठन (वेबसाइट का) प्रदर्शित करेगा। क्या यह संभवतः कोको टच में इन विवरणों को निकालने के लिए है क्योंकि मैं भी उन्हें उपयोगकर्ता को प्रस्तुत करना चाहता हूं? यह प्रमाण पत्र के खिलाफ सर्वर के होस्ट नाम को सत्यापित करने के लिए भी उचित होगा कि वेबसाइट वैध है?कोको टच में वेबसाइट प्रमाण पत्र कैसे सत्यापित करें?
उत्तर
NSURLConnection
आपको एक त्रुटि (NSURLErrorDomain
) देगा यदि आप किसी अमान्य प्रमाणपत्र वाले सर्वर से कनेक्ट करने का प्रयास करते हैं (उदा। यह स्वयं हस्ताक्षरित है, पुराना है, गलत होस्ट इत्यादि है)। इसलिए आपको वास्तव में कोई सत्यापन करने की आवश्यकता नहीं है, क्योंकि यह सब आपके लिए संभाला जाता है।
यदि आप वास्तव में अपने यूआई में एक SSL प्रमाणपत्र सारांश प्रदर्शित करना चाहते हैं, तो आपको NSURLConnection
से एक परत छोड़नी होगी और इसके बजाय निम्न-स्तर CFNetwork
API का उपयोग करना होगा। एक बार जब आप एक CFReadStreamRef
kCFStreamEventEndEncountered
स्थिति में नहीं है कि है, तो आप निम्नलिखित करने के लिए सक्षम होना चाहिए (यह मानते हुए अपनी स्ट्रीम संभाल readStream
कहा जाता है):
NSArray* certificates = [(NSArray*)CFReadStreamCopyProperty(readStream, kCFStreamPropertySSLPeerCertificates) autorelease];
if ([certificates count] > 0) {
SecCertificateRef certificate = (SecCertificateRef)[certificates objectAtIndex:0];
NSString* description = [(NSString*)SecCertificateCopySubjectSummary(certificate) autorelease];
NSData* data = [(NSData*)SecCertificateCopyData(certificate) autorelease];
}
आप data
में आयोजित अगर आप चाहते हैं के बारे में जानकारी को डिकोड करने की आवश्यकता होगी प्रमाण पत्र के विभिन्न गुणों तक पहुंचने के लिए, लेकिन description
में आयोजित सारांश आपके उद्देश्यों के लिए पर्याप्त हो सकता है।
- 1. सी # सीआरएल सूची में प्रमाण पत्र सत्यापित करें
- 2. डोमेन प्रमाण-पत्र (मूल कोड से) को कैसे सत्यापित करें?
- 3. वेबसाइट सुरक्षा और विंडोज प्रमाण पत्र
- 4. जावा में पीकेसीएस # 7 प्रमाण पत्र सत्यापित करना
- 5. javax.security.cert.X509 प्रमाण पत्र बनाम java.security.cert.X509 प्रमाण पत्र?
- 6. प्रमाण पत्र
- 7. लॉगऑन प्रमाण पत्र
- 8. X509 प्रमाण पत्र
- 9. अक्षम प्रमाण पत्र सत्यापन
- 10. जावा/KeyStore प्रमाण पत्र
- 11. श्रृंखलाबद्ध ग्राहक प्रमाण पत्र
- 12. कोको टच
- 13. उत्तीर्ण प्रमाण-पत्र
- 14. विंडोज प्रमाणीकरण प्रमाण-पत्र
- 15. कोको टच
- 16. कोको/कोको टच
- 17. अजगर Foursquare - SSL3 प्रमाण पत्र
- 18. कोको टच
- 19. कोको टच
- 20. प्रमाण पत्र प्रबंधक सेवा
- 21. कोको टच
- 22. कोको टच
- 23. कोको-टच
- 24. वेबसाइट सेवा प्रमाण-पत्र - ओपनआईडी/एंड्रॉइड खाता प्रबंधक?
- 25. आईओएस प्रमाण पत्र वेबसाइट द्वारा स्थापित यूआईआईआईडी को सत्र
- 26. एसक्यूएल लॉगिन प्रमाण पत्र
- 27. विंडोज 7 से PowerShell में कैश किए गए प्रमाण पत्र प्राप्त करें 0 प्रमाण पत्र प्रबंधक
- 28. 'विंडोज प्रमाण पत्र'
- 29. openssl प्रमाण पत्र सत्यापन
- 30. कनेक्ट: SSL_connect वापस = 1 errno = 0 स्थिति = SSLv3 सर्वर प्रमाण पत्र पढ़ें बी: प्रमाण पत्र सत्यापित विफल (OpenSSL :: SSL :: SSLError)
धन्यवाद मदद के लिए नाथन, एक परत छोड़ने की तरह आप सुझाव चाल किया! यद्यपि वास्तव में कोई समस्या नहीं है, लेकिन इसके बजाय आपका NSDictionary * Cast एक NSArray * नहीं होना चाहिए? – dbotha
क्या आप एक कोड नमूना डीओन पोस्ट करने में सक्षम होंगे? – Pripyat
@Deon ठीक है आप! मैंने नमूना कोड अपडेट किया है। –