मैं APN पेलोड डेटा के लिए होस्टिंग सर्वर में संग्रहीत करने के लिए एक .pem फ़ाइल कैसे बनाऊं?
मैं APN पेलोड डेटा के लिए होस्टिंग सर्वर में संग्रहीत करने के लिए एक .pem फ़ाइल कैसे बनाऊं?
जवाबों:
यहाँ मैं क्या किया है, से: blog.boxedice.com और "iPhone उन्नत परियोजनाओं" अध्याय 10 byJoe Pezzillo।
चाबी का गुच्छा में aps_developer_identity.cer के साथ:
apns-dev-cert.p12
फ़ाइल के रूप में सहेजें कहीं आप इसे एक्सेस कर सकते हैं। पासवर्ड दर्ज करने की कोई आवश्यकता नहीं है।अगला कमांड PEM प्रारूप के लिए मैक के टर्मिनल में सर्टिफिकेट बनाता है (गोपनीयता वर्धित मेल सुरक्षा प्रमाणपत्र):
openssl pkcs12 -in apns-dev-cert.p12 -out apns-dev-cert.pem -nodes -clcerts
सर्वर पर chmod 400 का उपयोग करके इस अनएन्क्रिप्टेड कुंजी की फ़ाइल अनुमति सेट करें।
विकास का चरण:
चरण 1: सर्टिफिकेट .pem सर्टिफिकेट .p12 से बनाएं
openssl pkcs12 -clcerts -nokeys -out apns-dev-cert.pem -in apns-dev-cert.p12
चरण 2: कुंजी से .pem बनाएँ ।p12 से
openssl pkcs12 -nocerts -out apns-dev-key.pem -in apns-dev-key.p12
चरण 3 (वैकल्पिक): यदि आप दूसरे चरण में पूछे गए पास वाक्यांश को हटाना चाहते हैं
openssl rsa -in apns-dev-key.pem -out apns-dev-key-noenc.pem
चरण 4: अब हमें विकास .pem और प्रमाणपत्र प्राप्त करना है।
यदि तीसरा चरण निष्पादित किया गया था, तो चलाएं:
cat apns-dev-cert.pem apns-dev-key-noenc.pem > apns-dev.pem
यदि तीसरा चरण प्रदर्शन नहीं किया गया था , तो चलाएं:
cat apns-dev-cert.pem apns-dev-key.pem > apns-dev.pem
चरण 5: प्रमाणपत्र की वैधता और APNS से कनेक्टिविटी की जाँच करें
यदि तीसरा चरण निष्पादित किया गया था, तो चलाएं:
openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert apns-dev-cert.pem -key apns-dev-key-noenc.pem
यदि तीसरा चरण प्रदर्शन नहीं किया गया था , तो चलाएं:
openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert apns-dev-cert.pem -key apns-dev-key.pem
उत्पादन चरण:
चरण 1: सर्टिफिकेट .pem सर्टिफिकेट .p12 से बनाएं
openssl pkcs12 -clcerts -nokeys -out apns-pro-cert.pem -in apns-pro-cert.p12
चरण 2: कुंजी से .pem बनाएँ ।p12 से
openssl pkcs12 -nocerts -out apns-pro-key.pem -in apns-pro-key.p12
चरण 3 (वैकल्पिक): यदि आप दूसरे चरण में पूछे गए पास वाक्यांश को हटाना चाहते हैं
openssl rsa -in apns-pro-key.pem -out apns-pro-key-noenc.pem
चरण 4: अब हमें उत्पादन प्राप्त करने के लिए की .pem और प्रमाणपत्र .pem को मर्ज करना होगा।
यदि तीसरा चरण निष्पादित किया गया था, तो चलाएं:
cat apns-pro-cert.pem apns-pro-key-noenc.pem > apns-pro.pem
यदि तीसरा चरण प्रदर्शन नहीं किया गया था , तो चलाएं:
cat apns-pro-cert.pem apns-pro-key.pem > apns-pro.pem
चरण 5: प्रमाणपत्र की वैधता और APNS से कनेक्टिविटी की जाँच करें।
यदि तीसरा चरण निष्पादित किया गया था, तो चलाएं:
openssl s_client -connect gateway.push.apple.com:2195 -cert apns-pro-cert.pem -key apns-pro-key-noenc.pem
यदि तीसरा चरण प्रदर्शन नहीं किया गया था , तो चलाएं:
openssl s_client -connect gateway.push.apple.com:2195 -cert apns-pro-cert.pem -key apns-pro-key.pem
कदम:
यह आपको तीन फाइलें देता है:
PushChatKey.p12
)aps_development.cer
उस फ़ोल्डर पर जाएं जहां आपने फ़ाइलें डाउनलोड की हैं, मेरे मामले में डेस्कटॉप:
$ cd ~/Desktop/
एक .pem फ़ाइल में .cer फ़ाइल को कनवर्ट करें:
$ openssl x509 -in aps_development.cer -inform der -out PushChatCert.pem
निजी कुंजी की .p12 फ़ाइल को .pem फ़ाइल में बदलें:
$ openssl pkcs12 -nocerts -out PushChatKey.pem -in PushChatKey.p12
आयात पासवर्ड दर्ज करें:
MAC verified OK
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
आपको पहले .p12 फ़ाइल के लिए पासफ़्रेज़ दर्ज करने की आवश्यकता है ताकि ओपनसेल इसे पढ़ सके। फिर आपको एक नया पासफ़्रेज़ दर्ज करने की आवश्यकता है जिसका उपयोग पीईएम फ़ाइल को एन्क्रिप्ट करने के लिए किया जाएगा। इस ट्यूटोरियल के लिए मैंने PEM पासफ़्रेज़ के रूप में "पुशचैट" का उपयोग किया। आपको कुछ अधिक सुरक्षित चुनना चाहिए। नोट: यदि आप PEM पासफ़्रेज़ दर्ज नहीं करते हैं, तो Opensl कोई त्रुटि संदेश नहीं देगा, लेकिन उत्पन्न। Pem फ़ाइल में निजी कुंजी नहीं होगी।
अंत में, प्रमाणपत्र और कुंजी को एक। Pem फ़ाइल में संयोजित करें:
$ cat PushChatCert.pem PushChatKey.pem > ck.pem
टर्मिनल एप्लिकेशन लॉन्च करें और प्रॉम्प्ट के बाद निम्नलिखित कमांड दर्ज करें
openssl pkcs12 -in CertificateName.p12 -out CertificateName.pem -nodes
- >> एप्पल का अपना ट्यूटोरियल << - निर्देशों का एकमात्र काम कर रहा है जो मैं भर में आया हूं। यह सीधे आगे है और मैं यह पुष्टि कर सकता हूं कि यह एक linux php सर्वर और एक विंडोज़ php सर्वर दोनों पर शानदार ढंग से काम करता है।
आप पृष्ठ के निचले भाग में उनकी 5-चरणीय पेम निर्माण प्रक्रिया पा सकते हैं।
आप यहां देख सकते हैं। मेरे पास विस्तृत प्रक्रिया है जो चित्रों के साथ है, जो कि प्रमाण पत्र बनाने से लेकर, प्रोविजनिंग प्रोफाइल की कुंजी, अंततः पेम तक है। http://docs.moengage.com/docs/apns-certificate-pem-file
नोट: आपके पास इनमें से कोई भी कार्य करने के लिए ऐप स्टोर कनेक्ट में टीम एजेंट या व्यवस्थापक की भूमिका होनी चाहिए। यदि आप ऐप स्टोर में एक टीम का हिस्सा नहीं हैं, तो यह संभवत: आपको प्रभावित नहीं करता है।
IOS एप्लिकेशन को पुश नोटिफिकेशन भेजने के लिए एनकाउंटर कीज बनाने की जरूरत होती है। अतीत में यह एक बोझिल प्रक्रिया थी जिसमें एसएसएल कुंजी और प्रमाणपत्र का उपयोग किया जाता था। प्रत्येक एसएसएल प्रमाणपत्र एक एकल आईओएस एप्लिकेशन के लिए विशिष्ट था। 2016 में Apple ने एक नया प्रमाणीकरण कुंजी तंत्र पेश किया जो अधिक विश्वसनीय और उपयोग करने में आसान है। नई प्रमाणीकरण कुंजी अधिक लचीली हैं, जो iOS ऐप पर बनाए रखने के लिए सरल और सरल हैं।
हालांकि यह साल हो गया है क्योंकि प्रमाणीकरण कुंजियों को पेश किया गया था न कि हर सेवा उनका समर्थन करती है। FireBase और Amazon Pinpoint प्रमाणीकरण कुंजी का समर्थन करते हैं। अमेज़ॅन एसएनएस, अर्बन एयरशिप, ट्विलियो और लीनप्लम नहीं। कई खुले स्रोत सॉफ़्टवेयर पैकेज अभी तक प्रमाणीकरण कुंजियों का समर्थन नहीं करते हैं।
आवश्यक SSL प्रमाणपत्र बनाने के लिए और इसे PEM फ़ाइल के रूप में निर्यात करें जिसमें सार्वजनिक और निजी कुंजियाँ हों:
यदि आपके पास पहले से ऐप्पल डेवलपर केंद्र वेबसाइट में ऐप के लिए एसएसएल प्रमाणपत्र स्थापित है तो आप प्रमाणपत्र को पीईएम प्रारूप में कनवर्ट करने के लिए आगे छोड़ सकते हैं। ध्यान रखें कि आप समस्या में पड़ जाएगा यदि आप नहीं करते भी निजी कुंजी है कि मैक पर कि हस्ताक्षर अनुरोध है कि एप्पल पर अपलोड किया गया बनाई उत्पन्न की गई है।
यह देखने के लिए पढ़ें कि उस निजी कुंजी को ट्रैक करने से कैसे बचें।
Xcode पुश सूचनाओं के लिए प्रमाण पत्र या कुंजी को नियंत्रित नहीं करता है। चाबियाँ बनाने और ऐप के लिए पुश नोटिफिकेशन को सक्षम करने के लिए आपको ऐप्पल डेवलपर सेंटर की वेबसाइट पर जाना होगा। आपके खाते का प्रमाणपत्र, पहचानकर्ता और प्रोफ़ाइल अनुभाग ऐप आईडी और प्रमाणपत्रों को नियंत्रित करता है।
प्रमाण पत्र और प्रोफाइल तक पहुँचने के लिए आपके पास या तो भुगतान किया गया Apple डेवलपर प्रोग्राम सदस्यता होना चाहिए या ऐसा करने वाली टीम का हिस्सा होना चाहिए।
पुश नोटिफिकेशन का उपयोग करने वाले ऐप वाइल्डकार्ड ऐप आईडी या प्रोविजनिंग प्रोफाइल का उपयोग नहीं कर सकते हैं। प्रत्येक एप्लिकेशन को पुश सूचनाओं को सक्षम करने के लिए आपको ऐप्पल डेवलपर केंद्र पोर्टल में एक ऐप आईडी रिकॉर्ड स्थापित करने की आवश्यकता होती है।
पुश सूचनाओं के लिए एसएसएल प्रमाणपत्र बनाना कई कार्यों की एक प्रक्रिया है। प्रत्येक कार्य के कई चरण होते हैं। ये सभी P12 या PEM प्रारूप में कुंजियों को निर्यात करने के लिए आवश्यक हैं। आगे बढ़ने से पहले चरणों की समीक्षा करें।
एक प्रमाण पत्र बनाने के लिए आपको एक मैक पर एक सर्टिफिकेट साइनिंग अनुरोध (CSR) बनाना होगा और इसे Apple पर अपलोड करना होगा।
बाद में यदि आपको इस प्रमाणपत्र को pkcs12 (उर्फ p12) फ़ाइल के रूप में निर्यात करने की आवश्यकता है, तो आपको उसी मैक से किचेन का उपयोग करना होगा । जब हस्ताक्षर अनुरोध बनाया जाता है तो किचेन एक्सेस डिफ़ॉल्ट किचेन में कुंजी का एक समूह उत्पन्न करता है। ये कुंजी प्रमाणपत्र के साथ काम करने के लिए आवश्यक हैं जो Apple हस्ताक्षर अनुरोध से बनाएगा।
विशेष रूप से विकास के लिए उपयोग किए जाने वाले क्रेडेंशियल्स के लिए एक अलग किचेन होना एक अच्छा अभ्यास है। यदि आप ऐसा करते हैं, तो सुनिश्चित करें कि प्रमाणपत्र सहायक का उपयोग करने से पहले यह चाबी का गुच्छा डिफ़ॉल्ट होना तय है।
सर्टिफिकेट साइनिंग रिक्वेस्ट क्रिएट करते समय सर्टिफिकेट असिस्टेंट डिफॉल्ट किचेन में दो एन्क्रिप्शन कीज पैदा करता है। डेवलपमेंट किचेन को डिफॉल्ट बनाना जरूरी है इसलिए चाबी सही किचेन में हो।
हस्ताक्षर अनुरोध बनाने से कुंजियों की एक जोड़ी उत्पन्न हुई। हस्ताक्षर अनुरोध को अपलोड करने से पहले यह सत्यापित कर लें कि विकास कुंजी में चाबी है। उनके नाम हस्ताक्षर अनुरोध में उपयोग किए जाने वाले सामान्य नाम के समान होंगे ।
एक बार सर्टिफिकेट साइनिंग अनुरोध बनाने के बाद इसे Apple डेवलपर सेंटर पर अपलोड करें। Apple हस्ताक्षर अनुरोध से पुश अधिसूचना प्रमाण पत्र बनाएगा।
आपके विकास कीचेन को अब किचेन एक्सेस में मेरा प्रमाण पत्र के तहत एक निजी कुंजी के साथ पुश प्रमाणपत्र दिखाना चाहिए :
इस बिंदु पर विकास कीचेन का बैकअप होना चाहिए। कई टीमें अपने पुश प्रमाणपत्रों को सुरक्षित यूएसबी ड्राइव पर रखती हैं, आंतरिक संस्करण नियंत्रण के लिए या टाइम मशीन की तरह बैकअप समाधान का उपयोग करती हैं। विकास कीचेन को अलग-अलग टीम के सदस्यों के बीच साझा किया जा सकता है क्योंकि इसमें कोई व्यक्तिगत कोड नहीं होता है जो क्रेडेंशियल पर हस्ताक्षर करता है।
किचेन फाइलें अंदर स्थित हैं
~/Library/Keychains
।
कुछ तृतीय पक्ष पुश सेवाओं को गोपनीयता बढ़ाने वाले मेल (पीईएम) प्रारूप में प्रमाण पत्र की आवश्यकता होती है, जबकि अन्य को सार्वजनिक-कुंजी क्रिप्टोग्राफी मानकों # 12 (PKCS12 या P12) की आवश्यकता होती है। Apple से डाउनलोड किए गए प्रमाणपत्र का उपयोग इन प्रारूपों में प्रमाणपत्र निर्यात करने के लिए किया जा सकता है - लेकिन केवल तभी जब आपने निजी कुंजी रखी हो।
मैं एक बहुत अधिक सरल उपाय सुझाऊंगा। बस Certifire का उपयोग करें ।
सर्टिफायर एक मैकओएस एप्लिकेशन है जो कुछ ही सेकंड में एक क्लिक के साथ Apple पुश नोटिफिकेशन सर्टिफिकेट जेनरेट करता है।
यहाँ कदम हैं:
1. एप्लिकेशन डाउनलोड करें।
2. अपने Apple डेवलपर खाता क्रेडेंशियल्स का उपयोग करके लॉग इन करें।
3. ऐप-आईडी चुनें
4. "जनरेट" बटन पर क्लिक करें
5. आपका काम हो गया!
आपको एपीपी प्रमाण पत्र .pem प्रारूप के साथ-साथ .p12 प्रारूप में मिलेंगे। और भी, आपको संयुक्त .pem और .p12 भी मिलेंगे (कुंजी + प्रमाणपत्र)!
बहुत अधिक, आपको इन सभी प्रमाणपत्रों का नो-पासफ़्रेज़ संस्करण भी मिलेगा!
यह मैंने विंडोज 7 पर कैसे किया, ओपनएसएसएल स्थापित करने के बाद (लिंक Win32 इंस्टॉलर पर जाता है, नवीनतम संस्करण चुनें और प्रकाश संस्करण नहीं)।
इस पद्धति के साथ आपको केवल .cer
Apple से डाउनलोड की गई फ़ाइल की आवश्यकता है ।
c:\OpenSSL-Win32\bin\openssl.exe x509 -in aps_development.cer -inform DER -out developer_identity.pem -outform PEM
यह एक फाइल बनाएगा जिसे आपको अपनी निजी कुंजी भी जोड़ना होगा।
----- निजी कुंजी ----- BEGIN
MIIEuwIBADANBgkqhk .... आदि
MIIEuwIBADANBgkqhk .... आदि
MIIEuwIBADANBgkqhk .... आदि
MIIEuwIBADANBgkqhk .... आदि
----- END निजी कुंजी -----
----- BEGIN CERTIFICATE -----
AwIBAgwIBADAwIBADA .... आदि
AwIBAgwIBADAwIBADA .... आदि
AwIBAgwIBADAwIBADA .... आदि
----- END प्रमाण पत्र -----
बस।
बनाने का सबसे आसान तरीका है .Pem फ़ाइल यदि आप पहले से ही अपनी कुंजी श्रृंखला एक्सेस में p12 फ़ाइल एप्स कर चुके हैं।
टर्मिनल खोलें और नीचे कमांड दर्ज करें:
Devlopment के लिए Opensl pkcs12 -in apns-div-cert.p12
उत्पादन के लिए Opensl pkcs12 में एपन-डिस्ट-सर्टिफिकेट।
इस नाम के साथ अपनी P12 फ़ाइल का नाम बदलें: apns-div-cert.p12 अन्यथा इसके बजाय आपको अपना फ़ाइल नाम दर्ज करने की आवश्यकता है। धन्यवाद!!
मुझे फ़ाइल openssl
बनाने के लिए आवश्यक कमांड याद नहीं है .pem
, इसलिए मैंने प्रक्रिया को आसान बनाने के लिए यह बैश स्क्रिप्ट बनाई:
#!/bin/bash
if [ $# -eq 2 ]
then
echo "Signing $1..."
if ! openssl pkcs12 -in $1 -out $2 -nodes -clcerts; then
echo "Error signing certificate."
else
echo "Certificate created successfully: $2"
fi
else
if [ $# -gt 2 ]
then
echo "Too many arguments"
echo "Syntax: $0 <input.p12> <output.pem>"
else
echo "Missing arguments"
echo "Syntax: $0 <input.p12> <output.pem>"
fi
fi
इसे नाम दें, उदाहरण के लिए, signpem.sh
और इसे अपने उपयोगकर्ता के फ़ोल्डर ( /Users/<username>
?) पर सहेजें । फ़ाइल बनाने के बाद, chmod +x signpem.sh
इसे निष्पादित करने के लिए एक करें और फिर आप चला सकते हैं:
~/signpem myCertificate.p12 myCertificate.pem
और myCertificate.pem
बनाई जाएगी।