กำลังสร้างไฟล์. pem สำหรับ APNS หรือไม่


177

ฉันจะสร้างไฟล์. pem เพื่อจัดเก็บในเซิร์ฟเวอร์การโฮสต์สำหรับข้อมูลโหลดของ APN ได้อย่างไร


1
ฉันสามารถใช้. p12 สำหรับ apns แทน. pem ได้หรือไม่
Gajendra K Chauhan

คำจำกัดความ FYI ของ. pem: serverfault.com/a/21158/193377 PEM ด้วยตัวเองไม่ใช่ใบรับรองมันเป็นวิธีการเข้ารหัสข้อมูล .... ปลอดภัยที่จะวางลงในเนื้อความของข้อความอีเมลเพราะมันมีจุดยึดและมีความสะอาด 7 บิต
AnneTheAgile

คำตอบ:


365

นี่คือสิ่งที่ฉันทำจาก: blog.boxedice.comและ "โครงการขั้นสูงของ iPhone" บทที่ 10 โดย Joe Pezzillo

ด้วย aps_developer_identity.cer ในพวงกุญแจ:

  1. เรียกใช้ Keychain Access จาก Mac ในพื้นที่ของคุณและจาก Keychain Keychain กรองตามหมวดหมู่ใบรับรอง คุณจะเห็นตัวเลือกที่ขยายได้ที่เรียกว่า“ Apple Development Push Services”
  2. คลิกขวาที่“ บริการผลักดันการพัฒนาของ Apple”> ส่งออก“ บริการผลักดันการพัฒนาของ Apple ID123″ บันทึกเป็นapns-dev-cert.p12ไฟล์ในที่ที่คุณสามารถเข้าถึงได้ ไม่จำเป็นต้องใส่รหัสผ่าน
  3. คำสั่งถัดไปสร้างใบรับรองในเทอร์มินัลของ Mac สำหรับรูปแบบ PEM (ใบรับรองความปลอดภัยของจดหมายส่วนบุคคลขั้นสูง):

    openssl pkcs12 -in apns-dev-cert.p12 -out apns-dev-cert.pem -nodes -clcerts

บนเซิร์ฟเวอร์ตั้งค่าการอนุญาตไฟล์ของคีย์ที่ไม่ได้เข้ารหัสนี้โดยใช้ chmod 400


3
ฉันได้ทำตามขั้นตอนข้างต้นและตอนนี้มันใช้งานได้ฉันได้เก็บใบรับรองและสคริปต์ php ไว้ในเว็บเซิร์ฟเวอร์ในพื้นที่ของฉัน (Xampp) ฉันสามารถรับโทเค็นของอุปกรณ์และฉันใช้มันในสคริปต์ PHP สคริปต์ php สามารถเชื่อมต่อและส่งข้อมูล payload ได้ แต่ถึงกระนั้นฉันก็ไม่สามารถรับการแจ้งเตือนแบบ PUSH ได้ อะไรคือปัญหา ? การแจ้งเตือนใช้เวลานานหรือไม่?
Biranchi

12
ในการเข้าถึง Keychain ของ Mavericks (10.9) มีตัวเลือกในการส่งออกเป็น. pem! เพียงคลิกขวาที่ "การพัฒนา Apple / การผลิต iOS Push Services ใบรับรองภายใน Keychain Access และเลือกที่จะส่งออกเปลี่ยนรูปแบบไฟล์เป็น. pem - เสร็จสิ้น! นอกจากนี้ยังมีตัวเลือกการส่งออก:
.p7b

5
.pem ถูกปิดใช้งานสำหรับฉัน yosemite beta7 ฉันมีปัญหาบางอย่างในการสร้าง. pem เมื่อฉันเปิดมันมีข้อความระบุว่ามีไว้สำหรับการเผยแพร่แทน dev
Cristi Băluță

2
.pem ไม่ได้ปิดการใช้งานสำหรับฉัน แต่ฉันไม่สามารถบันทึกเป็น p12 ได้ นี่คือลักษณะที่ปรากฏ: i.imgur.com/U2M40dU.png
FooBar

2
สำหรับ macOS 10.14 Mojave โดยใช้แอป Keychain Access คุณสามารถเลือกส่งออก "Apple Push Services ของคุณ: com.yourBundleIdentifier ใบรับรอง" เป็นรูปแบบไฟล์ "Privacy Enhanced Mail (.pem)" และบันทึกเมื่อใดก็ตามที่คุณต้องการ
5uper_0leh

226

ขั้นตอนการพัฒนา:

ขั้นตอนที่ 1: สร้าง Certificate .pem จาก Certificate .p12
openssl pkcs12 -clcerts -nokeys -out apns-dev-cert.pem -in apns-dev-cert.p12

ขั้นตอนที่ 2:สร้างคีย์. pem จาก Key .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 และใบรับรอง. pem เพื่อรับการพัฒนา. pem ที่จำเป็นสำหรับการแจ้งเตือนแบบพุชในขั้นตอนการพัฒนาแอพ

หากดำเนินการขั้นตอนที่ 3 ให้รัน:
cat apns-dev-cert.pem apns-dev-key-noenc.pem > apns-dev.pem

หากไม่ได้ดำเนินการขั้นตอนที่ 3 ให้รัน:
cat apns-dev-cert.pem apns-dev-key.pem > apns-dev.pem

ขั้นตอนที่ 5:ตรวจสอบความถูกต้องของใบรับรองและการเชื่อมต่อกับ APNS

หากดำเนินการขั้นตอนที่ 3 ให้รัน:
openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert apns-dev-cert.pem -key apns-dev-key-noenc.pem

หากไม่ได้ดำเนินการขั้นตอนที่ 3 ให้รัน:
openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert apns-dev-cert.pem -key apns-dev-key.pem

ขั้นตอนการผลิต:

ขั้นตอนที่ 1: สร้าง Certificate .pem จาก Certificate .p12
openssl pkcs12 -clcerts -nokeys -out apns-pro-cert.pem -in apns-pro-cert.p12

ขั้นตอนที่ 2:สร้างคีย์. pem จาก Key .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 เพื่อรับการผลิต. pem ที่จำเป็นสำหรับการแจ้งเตือนแบบพุชในขั้นตอนการผลิตของแอพ

หากดำเนินการขั้นตอนที่ 3 ให้รัน:
cat apns-pro-cert.pem apns-pro-key-noenc.pem > apns-pro.pem

หากไม่ได้ดำเนินการขั้นตอนที่ 3 ให้รัน:
cat apns-pro-cert.pem apns-pro-key.pem > apns-pro.pem

ขั้นตอนที่ 5:ตรวจสอบความถูกต้องของใบรับรองและการเชื่อมต่อกับ APNS

หากดำเนินการขั้นตอนที่ 3 ให้รัน:
openssl s_client -connect gateway.push.apple.com:2195 -cert apns-pro-cert.pem -key apns-pro-key-noenc.pem

หากไม่ได้ดำเนินการขั้นตอนที่ 3 ให้รัน:
openssl s_client -connect gateway.push.apple.com:2195 -cert apns-pro-cert.pem -key apns-pro-key.pem


5
ขอบคุณนี่เป็นคนเดียวที่ได้ผลสำหรับฉัน
Erik Villegas

6
บันทึกไว้ในตู้นิรภัยที่มีค่าของฉัน! : P คำตอบที่ดีที่สุดตลอดกาล !!
ใส่ร้ายป้ายสี

3
คุณเป็นเทพเจ้านี้ได้ผลขอบคุณ ขึ้นโหวต นี่ควรเป็นคำตอบเพราะมันจะอธิบายในเชิงลึกเกี่ยวกับวิธีการสร้างทีละขั้นตอน
MNM

2
แน่นอนว่านี่ควรเป็นคำตอบที่ได้รับการยอมรับเพราะคำตอบของ @Rahul Sharma ไม่ได้สร้างผลลัพธ์ที่คาดหวังในขณะที่คำตอบนี้สมบูรณ์แบบ
Nowdeen

ขอบคุณคุณบันทึกชั่วโมงของฉันเพื่อตรวจสอบความถูกต้องของใบรับรอง นี่ควรเป็นคำตอบที่ได้รับการยอมรับ @Biranchi
Sourabh Sharma

59

ขั้นตอน:

  1. สร้าง CSR โดยใช้การเข้าถึงพวงกุญแจ
  2. สร้าง P12 โดยใช้การเข้าถึงพวงกุญแจโดยใช้คีย์ส่วนตัว
  3. รหัสแอป APNS และใบรับรอง

สิ่งนี้ให้สามไฟล์:

  • CSR
  • ไพรเวตคีย์เป็นไฟล์ p12 ( PushChatKey.p12)
  • ใบรับรอง SSL aps_development.cer

ไปที่โฟลเดอร์ที่คุณดาวน์โหลดไฟล์ในกรณีของฉัน Desktop:

$ cd ~/Desktop/

แปลงไฟล์. cer เป็นไฟล์. pem:

$ 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 ก่อนเพื่อให้ openssl สามารถอ่านได้ จากนั้นคุณต้องป้อนวลีรหัสผ่านใหม่ที่จะใช้ในการเข้ารหัสไฟล์ PEM อีกครั้งสำหรับบทช่วยสอนนี้ฉันใช้“ pushchat” เป็นข้อความรหัสผ่าน PEM คุณควรเลือกสิ่งที่ปลอดภัยกว่า หมายเหตุ: ถ้าคุณไม่ป้อนข้อความรหัสผ่าน PEM, openssl จะไม่ให้ข้อความแสดงข้อผิดพลาด แต่ไฟล์. pem ที่สร้างขึ้นจะไม่มีคีย์ส่วนตัวในนั้น

ขั้นสุดท้ายให้รวมใบรับรองและคีย์ลงในไฟล์. pem ไฟล์เดียว:

$ cat PushChatCert.pem PushChatKey.pem > ck.pem


22

เปิดแอปพลิเคชัน Terminalและป้อนคำสั่งต่อไปนี้หลังจากได้รับแจ้ง

  openssl pkcs12 -in CertificateName.p12 -out CertificateName.pem -nodes

1
หลังจากคุณสร้าง p12 นี่ควรเป็นคำตอบ
ศิลา

10

- >> บทช่วยสอนของ Apple << - เป็นชุดคำสั่งที่ใช้งานได้เท่านั้นที่ฉันเคยเจอ มันตรงไปตรงมาและฉันสามารถยืนยันได้ว่าทำงานได้อย่างยอดเยี่ยมทั้งบนเซิร์ฟเวอร์ linux php และเซิร์ฟเวอร์ windows php

คุณสามารถค้นหากระบวนการสร้าง pem 5 ขั้นตอนได้ที่ด้านล่างของหน้า


ใช่ เพียงทำตามบทแนะนำอย่างง่าย คำสั่ง openssl ง่ายๆเพียงคำเดียว ฉันไม่รู้ว่ามันสำคัญหรือไม่ แต่ฉันรันคำสั่งโดย SSH ขณะกำลังเข้าสู่เซิร์ฟเวอร์ที่เชื่อมต่อกับ APNS
tylerl

1
@tylerl, PEM สามารถสร้างได้จากเครื่องใด ๆ - ไม่จำเป็นต้องเป็นเซิร์ฟเวอร์ที่จะอยู่
capikaw

ฉันจำเป็นต้องเรียกใช้กระบวนการนี้บนเซิร์ฟเวอร์ของตัวเองซึ่งมีการใช้งานโค้ด php หรือไม่ หรือฉันสามารถใช้ไฟล์. pem ที่สร้างจาก mac ของฉันได้ไหม?
Jatin

4
ลิงก์ใช้งานไม่ได้ตั้งแต่วันที่กันยายน 2558
Nicolas Miari


4

คุณสามารถดูได้ที่นี่ ฉันมีกระบวนการอย่างละเอียดที่อธิบายด้วยรูปภาพตั้งแต่การสร้างใบรับรองไปจนถึงคีย์แอพไปยังโปรไฟล์การจัดสรรจนถึงในที่สุด pem http://docs.moengage.com/docs/apns-certificate-pem-file


4

หมายเหตุ:คุณต้องมีทีมตัวแทนหรือบทบาทผู้ดูแลระบบใน App Store Connect เพื่อทำงานใด ๆ เหล่านี้ หากคุณไม่ได้เป็นส่วนหนึ่งของทีมใน App Store เชื่อมต่อสิ่งนี้อาจไม่ส่งผลกระทบต่อคุณ

การส่งการแจ้งเตือนแบบพุชไปยังแอปพลิเคชั่น iOS นั้นจำเป็นต้องสร้างคีย์การเข้ารหัส ในอดีตนี้เป็นกระบวนการที่ยุ่งยากที่ใช้คีย์ SSL และใบรับรอง ใบรับรอง SSL แต่ละใบนั้นเฉพาะกับแอปพลิเคชั่น iOS เดียว ในปี 2559 Apple ได้เปิดตัวกลไกการรับรองความถูกต้องใหม่ที่น่าเชื่อถือและใช้งานง่ายขึ้น คีย์การรับรองความถูกต้องใหม่มีความยืดหยุ่นและง่ายต่อการบำรุงรักษาและนำไปใช้กับมากกว่าในแอป iOS

แม้ว่าจะเป็นเวลาหลายปีแล้วที่มีการเปิดใช้งานคีย์การรับรองความถูกต้องไม่ใช่ทุกบริการที่รองรับ FireBase และ Amazon Pinpoint รองรับคีย์การตรวจสอบสิทธิ์ Amazon SNS, Urban Airship, Twilio และ LeanPlum ไม่ได้ทำ แพ็คเกจซอฟต์แวร์โอเพนซอร์สจำนวนมากยังไม่สนับสนุนคีย์การตรวจสอบสิทธิ์

ในการสร้างใบรับรอง SSL ที่ต้องการและส่งออกเป็นไฟล์ PEM ที่มีคีย์สาธารณะและส่วนตัว:

  1. นำทางไปยังใบรับรองตัวบ่งชี้และโปรไฟล์
  2. สร้างหรือแก้ไข ID แอปของคุณ
  3. เปิดใช้งานการแจ้งเตือนแบบพุชสำหรับรหัสแอป
  4. เพิ่มใบรับรอง SSL เข้ากับ ID แอป
  5. แปลงใบรับรองเป็นรูปแบบ PEM

หากคุณมีการตั้งค่าใบรับรอง SSL สำหรับแอปในเว็บไซต์ Apple Developer Center แล้วคุณสามารถข้ามไปข้างหน้าเพื่อแปลงใบรับรองเป็นรูปแบบ PEM เก็บไว้ในใจว่าคุณจะทำงานเป็นปัญหาถ้าคุณไม่ได้นอกจากนี้ยังมีคีย์ส่วนตัวที่ถูกสร้างขึ้นใน Mac ที่สร้างคำขอลงนามที่ถูกอัปโหลดไปยังแอปเปิ้ล

อ่านต่อไปเพื่อดูวิธีหลีกเลี่ยงการสูญเสียการติดตามคีย์ส่วนตัวนั้น

นำทางไปยังใบรับรองตัวบ่งชี้และโปรไฟล์

Xcode ไม่ควบคุมใบรับรองหรือปุ่มสำหรับการแจ้งเตือนแบบพุช ในการสร้างคีย์และเปิดใช้งานการแจ้งเตือนแบบพุชสำหรับแอปคุณต้องไปที่เว็บไซต์ Apple Developer Center ส่วนใบรับรองตัวระบุและโปรไฟล์ของบัญชีของคุณควบคุม ID แอปและใบรับรอง

ในการเข้าถึงใบรับรองและโปรไฟล์คุณต้องมีการเป็นสมาชิก Apple Developer Program ที่ชำระเงินหรือเป็นส่วนหนึ่งของทีม

  1. ลงชื่อเข้าใช้เว็บไซต์ Apple Developer ป้อนคำอธิบายรูปภาพที่นี่
  2. ไปที่บัญชีจากนั้นใบรับรองตัวระบุและโปรไฟล์ ป้อนคำอธิบายรูปภาพที่นี่

สร้างรหัสแอป

แอพที่ใช้การแจ้งเตือนแบบพุชไม่สามารถใช้รหัสแอพหรือสัญลักษณ์การจัดสรรได้ แต่ละแอปจะต้องให้คุณตั้งค่าบันทึก ID ของแอปในพอร์ทัลศูนย์ผู้พัฒนาแอปเปิ้ล

  1. ไปที่App รหัสภายใต้ตัวบ่งชี้
  2. ค้นหาแอปของคุณโดยใช้ตัวระบุบันเดิล มันอาจมีอยู่แล้ว
  3. หากไม่มี ID แอพสำหรับแอพที่มีอยู่ให้คลิกปุ่ม (+) เพื่อสร้าง
  4. เลือกID แอปอย่างชัดเจนในส่วนต่อท้าย ID แอปป้อนคำอธิบายรูปภาพที่นี่
  5. ป้อนตัวระบุกลุ่มสำหรับแอป
  6. เลื่อนไปที่ด้านล่างและเปิดใช้งานการแจ้งเตือนผลักดัน ป้อนคำอธิบายรูปภาพที่นี่
  7. คลิกดำเนินการต่อดำเนินการต่อ
  8. ในหน้าจอถัดไปคลิกลงทะเบียนเพื่อสร้างรหัสแอปให้เสร็จสมบูรณ์ ป้อนคำอธิบายรูปภาพที่นี่

เปิดใช้งานการแจ้งเตือนแบบพุชสำหรับรหัสแอป

  1. ไปที่App รหัสภายใต้ตัวบ่งชี้
  2. คลิกที่รหัสแอพเพื่อดูรายละเอียดและเลื่อนไปด้านล่าง ป้อนคำอธิบายรูปภาพที่นี่
  3. คลิกแก้ไข ป้อนคำอธิบายรูปภาพที่นี่
  4. ในหน้าจอการตั้งค่า ID แอปเลื่อนลงไปที่Push Notifications ป้อนคำอธิบายรูปภาพที่นี่
  5. เลือกช่องทำเครื่องหมายเพื่อเปิดใช้งานการแจ้งเตือนแบบพุช ป้อนคำอธิบายรูปภาพที่นี่

การสร้างใบรับรอง SSL สำหรับการแจ้งเตือนแบบพุชเป็นกระบวนการของหลายภารกิจ แต่ละงานมีหลายขั้นตอน สิ่งเหล่านี้จำเป็นสำหรับการส่งออกคีย์ในรูปแบบ P12 หรือ PEM ตรวจสอบขั้นตอนก่อนดำเนินการต่อ

เพิ่มใบรับรอง SSL เข้ากับ ID แอป

  1. ภายใต้การพัฒนาใบรับรอง SSL คลิกสร้างใบรับรองสร้างใบรับรองคุณจะต้องทำสิ่งนี้ในภายหลังเพื่อการผลิตเช่นกัน
  2. Apple จะขอให้คุณสร้างคำขอลงนามใบรับรอง ป้อนคำอธิบายรูปภาพที่นี่

ในการสร้างใบรับรองคุณจะต้องสร้างคำขอลงนามใบรับรอง (CSR) บน Mac และอัปโหลดไปยัง Apple

ต่อมาถ้าคุณต้องการที่จะส่งออกใบรับรองนี้เป็น pkcs12 A (aka P12) ไฟล์ที่คุณจะต้องใช้พวงกุญแจจากMac เดียวกัน เมื่อมีการสร้างคำขอการลงชื่อเข้าใช้ Keychain Access จะสร้างชุดคีย์ในพวงกุญแจเริ่มต้น คีย์เหล่านี้จำเป็นสำหรับการทำงานกับใบรับรองที่ Apple จะสร้างจากคำขอลงนาม

เป็นวิธีปฏิบัติที่ดีที่จะมีพวงกุญแจแยกต่างหากสำหรับข้อมูลประจำตัวที่ใช้สำหรับการพัฒนาโดยเฉพาะ หากคุณทำเช่นนี้ตรวจสอบให้แน่ใจว่าได้ตั้งค่าพวงกุญแจนี้ให้เป็นค่าเริ่มต้นก่อนที่จะใช้ผู้ช่วยใบรับรอง

สร้างพวงกุญแจสำหรับข้อมูลรับรองการพัฒนา

  1. เปิด Keychain Access บน Mac ของคุณ
  2. ในเมนูไฟล์ให้เลือกพวงกุญแจใหม่ ...
  3. ตั้งชื่อที่สื่อความหมายให้กับพวงกุญแจของคุณเช่น "การพัฒนาที่ใช้ร่วมกัน" หรือชื่อแอปพลิเคชันของคุณ

สร้างคำขอลงนามใบรับรอง (CSR)

เมื่อสร้างคำขอลงนามใบรับรองผู้ช่วยรับรองจะสร้างคีย์การเข้ารหัสสองคีย์ในพวงกุญแจเริ่มต้น มันเป็นสิ่งสำคัญที่จะทำให้การพัฒนาพวงกุญแจเริ่มต้นเพื่อให้กุญแจอยู่ในพวงกุญแจด้านขวา

  1. เปิด Keychain Access บน Mac ของคุณ
  2. คลิกควบคุมบนพวงกุญแจพัฒนาในรายการของพวงกุญแจ
  3. เลือกทำให้พวงกุญแจ "การพัฒนาที่ใช้ร่วมกัน" เป็นค่าเริ่มต้น ป้อนคำอธิบายรูปภาพที่นี่
  4. จากเมนูการเข้าถึงพวงกุญแจเลือกผู้ช่วยใบรับรองแล้วร้องขอการรับรองจากผู้ออกใบรับรอง ...จากเมนูย่อย ป้อนคำอธิบายรูปภาพที่นี่
  5. เมื่อประกาศนียบัตรผู้ช่วยผู้ตรวจสอบปรากฏบันทึกลงในดิสก์ ป้อนคำอธิบายรูปภาพที่นี่
  6. ป้อนที่อยู่อีเมลที่เชื่อมโยงกับการเป็นสมาชิก Apple Developer Program ของคุณในที่อยู่อีเมลผู้ใช้ฟิลด์
  7. ป้อนชื่อสำหรับคีย์ในฟิลด์ชื่อสามัญ ขอแนะนำให้ใช้ ID กลุ่มของแอปเป็นส่วนหนึ่งของชื่อสามัญ สิ่งนี้ทำให้ง่ายต่อการบอกว่าใบรับรองและกุญแจเป็นของแอปใด
  8. คลิกดำเนินการต่อ ผู้ช่วยใบรับรองจะแจ้งให้บันทึกคำขอลงนามในไฟล์
  9. ใน Keychain Access ให้ทำให้การ "เข้าสู่ระบบ" เป็นค่าเริ่มต้นอีกครั้ง

การสร้างคำขอลงนามสร้างคู่ของคีย์ ก่อนที่จะอัพโหลดคำขอลงนามยืนยันว่าพวงกุญแจพัฒนามีกุญแจ ชื่อของพวกเขาจะเหมือนกับชื่อสามัญที่ใช้ในคำขอเซ็นชื่อ

ป้อนคำอธิบายรูปภาพที่นี่

อัปโหลดคำขอลงนามใบรับรอง (CSR)

เมื่อสร้างคำขอเซ็นชื่อรับรองให้อัปโหลดไปยังศูนย์นักพัฒนา Apple Apple จะสร้างใบรับรองการแจ้งเตือนจากคำขอลงนาม

  1. อัปโหลดคำขอลงนามใบรับรอง
  2. ดาวน์โหลดใบรับรอง Apple สร้างขึ้นจากคำขอลงนามใบรับรอง ป้อนคำอธิบายรูปภาพที่นี่
  3. ใน Keychain Access เลือกพวงกุญแจพัฒนาจากรายการของพวงกุญแจ
  4. จากเมนูไฟล์เลือกนำเข้ารายการ ... ป้อนคำอธิบายรูปภาพที่นี่
  5. นำเข้าไฟล์ใบรับรองที่ดาวน์โหลดจาก Apple

ตอนนี้พวงกุญแจสำหรับการพัฒนาของคุณควรแสดงใบรับรองแบบพุชพร้อมคีย์ส่วนตัวภายใต้ใบรับรองของฉันในการเข้าถึงแบบพวงกุญแจ:

ป้อนคำอธิบายรูปภาพที่นี่

ณ จุดนี้พวงกุญแจการพัฒนาควรได้รับการสำรองไว้ หลายทีมเก็บใบรับรองพุชไว้ในไดรฟ์ USB ที่ปลอดภัยกระทำการควบคุมเวอร์ชันภายในหรือใช้โซลูชันสำรองข้อมูลเช่น Time Machine พวงกุญแจการพัฒนาสามารถใช้ร่วมกันระหว่างสมาชิกในทีมที่แตกต่างกันเพราะมันไม่ได้มีข้อมูลประจำตัวการลงนามรหัสส่วนบุคคลใด ๆ

~/Library/Keychainsไฟล์พวงกุญแจที่ตั้งอยู่ใน

บริการพุชจากบุคคลที่สามบางรายจำเป็นต้องมีใบรับรองในรูปแบบ Privacy Enhanced Mail (PEM) ในขณะที่บริการอื่น ๆ จำเป็นต้องใช้มาตรฐานการเข้ารหัสลับคีย์สาธารณะ # 12 (PKCS12 หรือ P12) ใบรับรองที่ดาวน์โหลดจาก Apple สามารถใช้เพื่อส่งออกใบรับรองในรูปแบบเหล่านี้ - แต่ถ้าคุณเก็บคีย์ส่วนตัวเท่านั้น

แปลงใบรับรองเป็นรูปแบบ PEM

  1. ใน Keychain Access เลือกพวงกุญแจการพัฒนาที่สร้างขึ้นก่อนหน้านี้
  2. เลือกใบรับรองการผลักดันในใบรับรองของฉัน ควรมีรหัสส่วนตัวด้วย ! [ดาวน์โหลดใบรับรองการกด CER] (พวงกุญแจ / นำเข้าเสร็จสมบูรณ์. png)
  3. จากเมนูไฟล์เลือกส่งออกรายการ ... ป้อนคำอธิบายรูปภาพที่นี่
  4. ในแผงการบันทึกที่เปิดขึ้นให้เลือกPrivacy Enhanced Mail (.pem)เป็นรูปแบบไฟล์
  5. บันทึกไฟล์

3

ฉันขอแนะนำวิธีแก้ปัญหาที่ง่ายกว่านี้อีก เพียงแค่ใช้Certifire
Certifireเป็นแอปพลิเคชั่น macOS ที่สร้างใบรับรองการแจ้งเตือนแบบพุชของ Apple ด้วยการคลิกเพียงครั้งเดียวในไม่กี่วินาที

นี่คือขั้นตอน:
1. ดาวน์โหลดแอพ
2. เข้าสู่ระบบโดยใช้ข้อมูลรับรองบัญชีผู้พัฒนา Apple ของคุณ
3. เลือกแอป ID
4. คลิกปุ่ม "สร้าง"
5. คุณทำเสร็จแล้ว!

คุณจะได้รับใบรับรอง APN ในรูปแบบ. pem และในรูปแบบ. p12 ยิ่งไปกว่านั้นคุณจะได้รับการรวม. pem และ. p12 ด้วย (คีย์ + ใบรับรอง)!
ยิ่งไปกว่านั้นคุณจะได้รับใบรับรองเหล่านี้ในเวอร์ชันที่ไม่มีวลีรหัสผ่านด้วย!

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่


2

นี่คือวิธีที่ฉันทำใน Windows 7 หลังจากติดตั้งOpenSSL (ลิงก์ไปที่ตัวติดตั้ง 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 คีย์ส่วนตัว -----
----- เริ่มต้นใบรับรอง -----
AwIBAgwIBADAwibada .... ฯลฯ
AwIBAgwIBADAwIBADA .... ฯลฯ
AwIBAgwIBADAwibada .... ฯลฯ
----- สิ้นสุดใบรับรอง -----

แค่นั้นแหละ.


2

มีวิธีที่ง่ายที่สุดในการสร้างไฟล์. Pem หากคุณมีไฟล์ ap12 แล้วในการเข้าถึงห่วงโซ่คีย์

เปิดเทอร์มินัลแล้วป้อนคำสั่งด้านล่าง:

สำหรับ Devlopment openssl pkcs12 -in apns-div-cert.p12 - ออก apns-div-cert.pem -nodes -clcerts

สำหรับการผลิต openssl pkcs12 -in apns-dist-cert.p12 -out apns-dist-cert.pem -nodes -clcerts

เปลี่ยนชื่อไฟล์ P12 ของคุณด้วยชื่อนี้: apns-div-cert.p12 ไม่เช่นนั้นคุณต้องป้อนชื่อไฟล์ของคุณแทน ขอบคุณ !!


1

ฉันไม่เคยจำopensslคำสั่งที่จำเป็นในการสร้าง.pemไฟล์ดังนั้นฉันจึงทำ bash script นี้เพื่อทำให้กระบวนการง่ายขึ้น:

#!/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>?) หลังจากสร้างไฟล์ทำ a chmod +x signpem.shเพื่อให้สามารถเรียกใช้งานได้จากนั้นคุณสามารถเรียกใช้:

~/signpem myCertificate.p12 myCertificate.pem

และmyCertificate.pemจะถูกสร้างขึ้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.