IPhone सिम्युलेटर में एक स्व-हस्ताक्षरित प्रमाण पत्र जोड़ना?


87

मेरे पास अपने एपीआई के समापन बिंदु पर एक स्व-हस्ताक्षरित प्रमाण पत्र है। मैं सिम्युलेटर का उपयोग करके कुछ चीजों का परीक्षण करने की कोशिश कर रहा हूं, लेकिन "अविश्वसनीय सर्वर प्रमाणपत्र" प्राप्त कर रहा हूं।

मैंने .crt फ़ाइल डाउनलोड करने के लिए सिम्युलेटर पर सफारी का उपयोग करने की कोशिश की है, लेकिन यह काम नहीं करता है।

IPhone सिम्युलेटर को इसकी चाबी कहां से मिलती है? मैं एक विश्वसनीय प्रमाणपत्र कैसे जोड़ सकता हूं ताकि मेरा आवेदन काम करे?

अपडेट करें

मुझे यह CA बनाने और फिर iPhone प्रोविजनिंग टूल का उपयोग करके CA प्रमाणपत्र जोड़कर काम करने के लिए मिला। तब मैं एपीआई सर्वर पर उस सीए सर्टिफिकेट और NSConnection द्वारा हस्ताक्षरित एक प्रमाणपत्र पर काम करने में सक्षम था। मैं किसी कारण से स्व-हस्ताक्षरित प्रमाण पत्र का उपयोग करके काम करने में सक्षम नहीं था। मुझे प्रोविजनिंग सॉफ्टवेयर का उपयोग करके इसे पुनः प्रयास करने की आवश्यकता है।

मेरा असली सवाल यह है कि मुझे सिम्युलेटर पर काम करने के लिए यह कैसे मिलेगा? मुझे लगता है कि सिम्युलेटर वास्तविक कंप्यूटर के किचेन का उपयोग करता है।


1
मैंने हाल ही में एक CA प्रमाणपत्र द्वारा होस्ट किए गए होस्ट के साथ इसे मारा जो कि विकास मैक पर लॉगिन किचेन में आयात किया गया था। (यह है, मेरे स्थानीय सफारी साइट पर भरोसा करता है, लेकिन सिम्युलेटर नहीं।) मुझे आश्चर्य था कि यह सिम्युलेटर के साथ काम नहीं करता था। सिम्युलेटर पर विश्वसनीय प्रमाणपत्रों में हेरफेर करने के लिए iPhone प्रोविजनिंग टूल का उपयोग कैसे करता है?
एमपिल्टिलो

जवाबों:


113

बस जानकारी के लिए, अगर कोई अभी भी उस समस्या में भाग लेता है:

बस अपनी चल रही सिम्युलेटर विंडो में अपनी .cer फाइलें खींचें और छोड़ें। आप सफारी को चमकता देखेंगे और फिर आपके प्रमाणपत्र (या प्रमाणपत्र प्राधिकरण) के लिए आयात संवाद ...

आईओएस 7 सिम्युलेटर के लिए काम करना (और मुझे लगता है कि आईओएस 6 के लिए भी काम किया था)।


3
IOS 7 सिम्युलेटर के लिए पर्याप्त रूप से घसीटना और गिराना सुनिश्चित करता है। मैं यह सत्यापित कर सकता हूं कि यह iOS 6.0 / 6.1 सिमुलेटर पर काम नहीं करता है।
जॉन बोवर्स

2
यह मुझे है या जब से मैं Xcode 6 के लिए बदसूरत हो गया हूं, यह ड्रैग एंड ड्रॉप चीज अब केवल सिम्युलेटर 8 के iOS 8 संस्करण पर काम करती है। IPhone 5s iOS 7 और iOS 7.1 सिम्युलेटर की कोशिश की, जब मैं सिम्युलेटर विंडो पर प्रमाण पत्र खींचता हूं तो कुछ भी नहीं होता है। और अब मैं फंस गया हूं और आईओएस 8 में अपने ऐप का परीक्षण नहीं कर सकता हूं
फ्रेड

2
IOS 7 और 7.1 के लिए वर्कअराउंड का पता लगाया: आपको .cer फ़ाइल को एक पहुंच योग्य वेब सर्वर पर डाल दिया, (एप्लिकेशन / x-x509-ca-cert माइम प्रकार को जोड़ने की जरूरत है तो इसे जोड़कर) और प्रमाण पत्र डाउनलोड करने के लिए सिम्युलेटर पर सफारी का उपयोग करें। वेब सर्वर से। यह तब आपको इसे स्थापित करने के लिए कहेगा जैसे कि आपने इसे खींचा और गिरा दिया।
फ्रेड

3
आप मेरे मित्र हैं
कॉममाटॉस्ट

1
आप ही है वह आदमी! मुझे पता था कि ऐसा करने का एक तेज़ तरीका होना चाहिए।
21

44

उन लोगों के लिए जो सिम्युलेटर पर प्रमाण पत्र को खींचना और छोड़ना काम नहीं कर रहे हैं, हाल ही में एक बदलाव आया था जो एक अतिरिक्त कदम जोड़ता है

जड़ सीए पर भरोसा करने के लिए सिम्युलेटर को स्पष्ट रूप से बताया जाना चाहिए। इस पर जाकर करें:

सामान्य -> ​​के बारे में -> प्रमाणपत्र ट्रस्ट सेटिंग्स -> अपने विशेष प्रमाणपत्र के लिए "रूट प्रमाणपत्र के लिए पूर्ण विश्वास सक्षम करें"

पूरा जवाब यहां देखें :


13
"रूट प्रमाण पत्र के लिए पूर्ण विश्वास सक्षम करें" विकल्प नहीं है जो भी मेरे सिम्युलेटर पर ios 10.3 चल रहा है
यीशु रोड्रिगेज

1
क्या आपने कभी इस मुद्दे को हल किया - रूट प्रमाणपत्र को सूचीबद्ध नहीं किया जा रहा है Certificate Trust Settings? मेरी प्रोफ़ाइल को जोड़ दिया गया है और एक प्रमाण पत्र शामिल है - यह सिर्फ एक महीने पहले की तुलना में कम काम कर रहा था। मेरे सिम्युलेटर कैश को रीसेट करें, अब प्रमाण पत्र जोड़ा गया है लेकिन इसे पूरी तरह से भरोसा करने का कोई विकल्प नहीं है।
क्रिस

3
मेरे मामले में, "रूट प्रमाणपत्र के लिए पूर्ण विश्वास सक्षम करें" का विकल्प केवल रूट प्रमाणपत्र के लिए दिखाई देता है। यह मध्यवर्ती या पत्ती प्रमाण पत्र के लिए प्रकट नहीं होता है।
जॉन गिरता

1
मैंने यह भी पाया कि प्रमाण-पत्र के पास CA मूल बाधा विकल्प होना चाहिए जो सत्य पर सेट हो: basicConstraints = CA:TRUEजब ओपनस्स्ल का उपयोग करके प्रमाण पत्र तैयार किया जाए । अन्यथा यह विश्वसनीय होने के लिए दिखाई नहीं देगा।
सैंडिनमिज पॉइंट्स

3
ऐसा प्रतीत होता है कि 12.2 पर (शायद पहले के संस्करणों के साथ ही) प्रक्रिया अब सामान्य> प्रोफाइल पर जाने के लिए है, प्रमाणपत्र का चयन करें, और ऊपरी दाएं में स्थापित हिट
MaxPRafferty

23

मेरे पास महीनों के लिए यही मुद्दा था और आज मैंने अंतिम रूप से इसे हल किया:

ADVTrustStore

आप github से ADVTrustStore नामक एक परियोजना का उपयोग करना चाहते हैं । यह कुछ फैंसी जादू करता है लेकिन यह सिम्युलेटर पर आपके रूट ट्रस्ट-स्टोर में सही ढंग से प्रमाण पत्र स्थापित करेगा।

कस्टम प्रमाणपत्र स्थापित करने के लिए चरण

# Clone the repo
git clone https://github.com/ADVTOOLS/ADVTrustStore.git

# Enter the repo directory
cd ADVTrustStore/

# Copy your .crt file 
cp somewhere/something.crt my.crt

# conver to a .pem file
openssl x509 -in my.crt -out my.pem -outform PEM

# Install the pem in the simulators
./iosCertTrustManager.py -a my.pem

इस प्रक्रिया का उपयोग करके मैं GoogleStreetView छवियों को सही ढंग से प्रस्तुत करने में सक्षम था, जबकि एक कॉर्पोरेट फ़ायरवॉल के पीछे SSL का उपयोग करके स्व-हस्ताक्षरित प्रमाण पत्र के साथ इस्तीफा देना

पृष्ठभूमि

मैं CharlesProxy का उपयोग कर रहा था और मैंने देखा कि यह सही ढंग से सिम्युलेटर में प्रमाण पत्र स्थापित कर रहा था, लेकिन वे सेटिंग्स - प्रोफाइल अनुभाग में नहीं दिखे । फिर कुछ खोज के बाद मैंने इस टूल को खोजा। वहाँ शायद कुछ अन्य उपकरण हैं, लेकिन मेरे मामले में ड्रैग-एंड-ड्रॉप ने सभी मामलों के लिए कभी सही ढंग से काम नहीं किया। सफारी ठीक होगी लेकिन मेरे आवेदन नहीं।


3
टीआईपी: नया प्रमाणपत्र स्थापित करने के लिए सिम्युलेटर को पुनरारंभ करें।
किको सेजो

1
इसने मेरे लिए Xcode 10.1 और iPhone 5s 12.1 सिम्युलेटर के साथ चाल चली। आपको बस यह सुनिश्चित करना है कि आप सही सिम्युलेटर में प्रमाणपत्र स्थापित करने के लिए स्क्रिप्ट बताएं। यदि आप इसका उपयोग badssl.test (यानी स्थानीय रूप से docker में स्थानीय रूप से चलने वाला) के साथ कर रहे हैं, तो वास्तविक प्रमाणपत्र को छोड़कर सब कुछ हटाने के लिए .pem को हैक करना होगा।
एंड्रयू एबलिंग

इससे मेरी जान बच गई। आईओएस में स्व हस्ताक्षरित सेर स्थापित करने के लिए लगभग कोई सामुदायिक समर्थन नहीं है। धन्यवाद!
lsimonetti

मैं पुष्टि करता हूं कि यह आईओएस 12.4 के साथ iPhone X के लिए सिम्युलेटर 10.3 में काम करता है।
सर्गेई बशारोव

9

चार्ल्स के द्वारा अपने स्वयं के हस्ताक्षरित प्रमाणपत्र को सिम्युलेटर के किचेन में स्थापित करने के लिए शेल स्क्रिप्ट का उपयोग करने पर एक नज़र डालें। http://www.charlesproxy.com/documentation/faqs/ssl-connections-from-within-iphone-applications/

यह सभी देखें:

ऐसा लगता है कि सिम्युलेटर में अपना स्वयं का प्रमाण पत्र स्थापित करने के लिए सफारी के माध्यम से इसे डिवाइस पर स्थापित करना पड़ सकता है और फिर डिवाइस के TrustStore.sqlite3सिम्युलेटर में डिवाइस से परिणामी पंक्ति को कॉपी करना होगा ।


@ नाविक उत्तर कुछ और संदर्भों के साथ अद्यतन किया गया है, जहां तक ​​मुझे पता है कि ट्रस्टस्टॉर में उन ब्लब्स का प्रारूप है। एसक्लाइट 3 अपारदर्शी है (और संभवतः परिवर्तन के अधीन है) इसलिए दूसरों ने जो दृष्टिकोण लिया है वह सफारी के माध्यम से एक उपकरण पर प्रमाणीकरण स्थापित करने के लिए लगता है। और उनके सिम्युलेटर में परिणामी TrustStore पंक्ति की नकल करना।
जोनाह

8

किसी के लिए भी OS X कैटालिना का उपयोग करें, कृपया इसे देखें: https://forums.developer.apple.com/thread/124056

कैटालिना वर्तमान में डेस्कटॉप, दस्तावेज़ और डाउनलोड फ़ोल्डर तक पहुंच को रोक रहा है। मैंने सर्टिफिकेट फ़ाइलों को साझा किए गए फ़ोल्डर में ले जाया और वहाँ से सिम्युलेटर में फ़ाइलों को खींचें और छोड़ें।


3
भगवान आपको स्वास्थ्य प्रदान करते हैं :)
बोह्रिन

2

IPhone बैकअप एक्सट्रैक्टर का उपयोग करते हुए , मैंने मौजूदा फ़ाइल को अधिलेखित TrustStore.sqlite3करते हुए ~/Library/Application Support/iPhone Simulator/6.0/Library/Keychains, अपने iPhone की प्रतिलिपि बनाई । मैंने निम्नलिखित sqlite के साथ केवल एक पंक्ति डालने की कोशिश की, लेकिन मैं इसे काम नहीं कर सका।

sqlite3 ~/backup/iOS\ Files/TrustStore.sqlite3
sqlite3>.mode insert
sqlite3>.output working.sql
sqlite3>select * from tsettings;
sqlite3>.quit

अब, working.sqltsettings तालिका की पूरी सामग्री है (मेरे मामले में, 1 पंक्ति)।

sqlite3 ~/Library/Application\ Support/iPhone\ Simulator/6.0/Library/Keychains/TrustStore.sqlite3
sqlite3>INSERT INTO tsettings VALUES(X'...
sqlite3>.quit

फिर, उपरोक्त sqlite कमांड ने मेरे लिए काम नहीं किया, लेकिन किसी और के लिए एक अच्छा शुरुआती बिंदु हो सकता है। TrustStore.sqlite3सिम्युलेटर में बैकअप से पूरे कॉपी करना ठीक काम किया।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.