รู้สึกเนื้อหานี้ น่าจะยาวมาก คงได้จะได้แบ่งเป็น 2-3 ตอนเป็นแน่ แต่ผมจะอธิบายเน้นๆ เลยแล้วกัน
Edit เนื่องจากมันยาวมาก และยุ่งยากมากจริงๆ เลยไม่ได้เขียนภาค 2 เนื่องจาก คุณ Firebase ทำให้มันง่ายขึ้นเยอะ พี่แกเล่นคลิ้กๆ 2-3 ที ใช้ได้เลย ผมเลยไม่ได้กลับมาเขียนต่อจนจบ ดังนั้น ก็ตัดบทซะแค่นี้แล้วกัน
ที่อื่นๆ อาจจะเริ่มสอนจากการสร้างโปรเจค สมัครนู่นนี่นั่น แต่เราจะคิดว่า คุณผ่านขั้นตอนพวกนั้นมาแล้วนะครับ เริ่มจากเรื่องนี้ก่อนเลยแล้วกัน ผมลองๆ ดูแล้ว โครตหลายขั้นตอน เลยต้องทำสรุปมาทีละขั้นก่อนเลย
เปิด Keychain Access บน Mac ขึ้นมาก่อน (พิมพ์ใน Spotlight Search เอาก็ได้)
เลือกเมนู Keychain Access > Certificate Assistant > Request a Certificate from a Certificate Authority.
ใส่ User email (ให้ตรงกับ developer account ของเรา) แล้วก็ common name (ผมใส่ชื่อ App ที่จะสร้าง) ชื่อ CA email ให้ว่างไว้ เพราะเราจะเลือก Saved to disk จากนั้นก็กดปุ่ม Continue ได้เลย
เลือกที่ Save ดีๆ เพราะต้องเอาไปใช้ในขั้นตอนถัดไปนะครับ
ขั้นแรก Login เข้า https://developer.apple.com ให้เรียบร้อย แล้วไปที่เมนู Identifiers > App IDs ดังรูป
คลิ้กปุ่มบวก ที่มุมซ้ายบน
จากนั้นก็ตั้งชื่อ App Name และเลือก Explicit App ID แต่มันจะสำคัญตรง Bundle ID นี่ล่ะ
มันต้องตั้งให้ตรงกับ app id ของ phonegap ของโปรเจค ของเราที่สร้างเอาไว้ด้วย (ดูในไฟล์ confgi.xml ได้ว่า เราตั้งไว้อย่างไร)
จากนั้นที่หัวข้อ App Service ให้ติดที่ Push Notifications ด้วย
จากนั้นกดปุ่ม Continue เพื่อไปขั้นตอนยืนยันที่จะสร้าง สังเกตว่าตรง Push Notifications จะเป็น Configurable นะครับ
ถ้าเรียบร้อยแล้วก็กดปุ่ม Submit เพื่อบันทึกได้เลย
เมื่อเรียบร้อยแล้วให้กลับมาที่หน้า Identifiers > App IDs อีกครั้ง แล้วเลือก ไอ้ App ที่เราเพิ่งสร้างตะกี้นี้ แล้วกดปุ่ม Edit
เลื่อนไปล่างๆ จนถึงหัวข้อ Push Notifications แล้วกดปุ่ม Create Certificate
กดปุ่มถัดไปเรื่อยๆ จนถึงหน้า ที่ให้ Upload CSR file. ก็ให้กดเลือกไฟล์ จากขั้นอตนที่แล้ว เข้าไป แล้วกดปุ่ม Generate แล้วรอซักพัก ก็จะได้ใบรับรองมาให้ Download ให้กดดาวน์โหลดเก็บไว้ ดีดี นะค่าบบ ต้องเอาไปใช้อีกหลายขั้นตอน
ทำแบบนี้ กับ Production SSL ด้วย (ที่หน้าขั้นตอนที่ 8) แล้วดาวน์โหลดมาแยกชื่อกันใช้ชัดเจนนะครับ
เริ่มจาก ไอ้ไฟล์ใบรับรอง 2 ไฟล์ ที่ได้ มาก่อนหน้านี้ ให้นำเอาไปใส่ใน Keychain Access ลากเข้าไปดื้อๆ เลยครับ
จากนั้นคลิ้กขวาที่ใบรับรองที่เพิ่มเข้าไปตะกี้นี้แล้วเลือก **Export…
มันจะให้เซฟเป็นไฟล์ .p12
ตั้งชื่อดีดี นะครับ แยกกันระหว่าง Production กับ Development
ทำแบบเดียวกันกับ Private key ของใบรับรองนั้นด้วย และที่เหลือด้วย สรุปแล้วเราจะได้ ไฟล์ .p12
มา 4 อัน
(เพียบ…)
เปิด terminal ขึ้นมาครับ แล้วไปที่ folder ที่เก็บพวกใบที่สร้างไว้ก่อนหน้านี้ แล้วใส่คำสั่งสร้างประมาณนี้ครับ
openssl pkcs12 -clcerts -nokeys -out aps_dev-cert.pem -in aps_dev.p12
openssl pkcs12 -nocerts -out aps_dev-key.pem -in aps_dev-key.p12
openssl rsa -in aps_dev-key.pem -out aps_dev-key-noenc.pem
cat aps_dev-cert.pem aps_dev-key-noenc.pem > aps_dev.pem
คำสั่งที่ 2 ต้องใส่ Password แล้วคำสั่งที่ 3 ต้องใส่ Password ที่ได้จากคำสั่งที่สอง , และทำแบบเดียวกันนี้กับ Production ด้วยนะครับ
ทดสอบใบรับรองที่ได้มาด้วยคำสั่งนี้
openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert aps_dev-cert.pem -key aps_dev-key.pem
openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert aps_dev-cert.pem -key aps_dev-key-noenc.pem
คำสั่งแรก ต้องใส่ Password คำสั่งที่สองไม่ต้องใส่ และเมื่อทดสอบสำเร็จ จะได้ผลลัพธ์ แบบนี้
เป็นอันจบขั้นตอนครับ ได้ใบรับรองมาไว้ใช้