Bagaimana cara membuat file .pem untuk disimpan di server hosting untuk data payload APN?
Bagaimana cara membuat file .pem untuk disimpan di server hosting untuk data payload APN?
Jawaban:
Inilah yang saya lakukan, Dari: blog.boxedice.com dan "iPhone Advanced Projects" bab 10 oleh Joe Pezzillo.
Dengan aps_developer_identity.cer di gantungan kunci:
apns-dev-cert.p12
file di suatu tempat Anda dapat mengaksesnya. Tidak perlu memasukkan kata sandi.Perintah selanjutnya menghasilkan sertifikat dalam Terminal Mac untuk format PEM (Sertifikat Keamanan Email Ditingkatkan Privasi):
openssl pkcs12 -in apns-dev-cert.p12 -out apns-dev-cert.pem -nodes -clcerts
Di server atur izin file dari kunci tidak terenkripsi ini dengan menggunakan chmod 400.
Fase Pengembangan:
Langkah 1: Buat Certificate .pem dari Certificate .p12
openssl pkcs12 -clcerts -nokeys -out apns-dev-cert.pem -in apns-dev-cert.p12
Langkah 2: Buat Kunci .pem dari Kunci .p12
openssl pkcs12 -nocerts -out apns-dev-key.pem -in apns-dev-key.p12
Langkah 3 (Opsional): Jika Anda ingin menghapus frasa sandi yang diminta pada langkah kedua
openssl rsa -in apns-dev-key.pem -out apns-dev-key-noenc.pem
Langkah 4: Sekarang kita harus menggabungkan kunci .pem dan Sertifikat .pem untuk mendapatkan Pengembangan .pem yang dibutuhkan untuk Pemberitahuan Dorong dalam Tahap Pengembangan Aplikasi.
Jika langkah ketiga dilakukan, jalankan:
cat apns-dev-cert.pem apns-dev-key-noenc.pem > apns-dev.pem
Jika langkah ke-3 adalah tidak dilakukan, jalankan:
cat apns-dev-cert.pem apns-dev-key.pem > apns-dev.pem
Langkah 5: Periksa validitas sertifikat dan konektivitas ke APNS
Jika langkah ketiga dilakukan, jalankan:
openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert apns-dev-cert.pem -key apns-dev-key-noenc.pem
Jika langkah ke-3 tidak dilakukan, jalankan:
openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert apns-dev-cert.pem -key apns-dev-key.pem
Fase produksi:
Langkah 1: Buat Certificate .pem dari Certificate .p12
openssl pkcs12 -clcerts -nokeys -out apns-pro-cert.pem -in apns-pro-cert.p12
Langkah 2: Buat Kunci .pem dari Kunci .p12
openssl pkcs12 -nocerts -out apns-pro-key.pem -in apns-pro-key.p12
Langkah 3 (Opsional): Jika Anda ingin menghapus frasa sandi yang diminta pada langkah kedua
openssl rsa -in apns-pro-key.pem -out apns-pro-key-noenc.pem
Langkah 4: Sekarang kita harus menggabungkan .pem Kunci dan Sertifikat .pem untuk mendapatkan Produksi .pem yang diperlukan untuk Pemberitahuan Push di Fase Produksi App.
Jika langkah ketiga dilakukan, jalankan:
cat apns-pro-cert.pem apns-pro-key-noenc.pem > apns-pro.pem
Jika langkah ke-3 tidak dilakukan, jalankan:
cat apns-pro-cert.pem apns-pro-key.pem > apns-pro.pem
Langkah 5: Periksa validitas sertifikat dan konektivitas ke APNS.
Jika langkah ketiga dilakukan, jalankan:
openssl s_client -connect gateway.push.apple.com:2195 -cert apns-pro-cert.pem -key apns-pro-key-noenc.pem
Jika langkah ke-3 tidak dilakukan, jalankan:
openssl s_client -connect gateway.push.apple.com:2195 -cert apns-pro-cert.pem -key apns-pro-key.pem
Langkah:
Ini memberi Anda tiga file:
PushChatKey.p12
)aps_development.cer
Buka folder tempat Anda mengunduh file, dalam kasus saya Desktop:
$ cd ~/Desktop/
Ubah file .cer menjadi file .pem:
$ openssl x509 -in aps_development.cer -inform der -out PushChatCert.pem
Ubah file .p12 kunci pribadi menjadi file .pem:
$ openssl pkcs12 -nocerts -out PushChatKey.pem -in PushChatKey.p12
Masukkan Kata Sandi Impor:
MAC verified OK
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
Pertama-tama Anda harus memasukkan frasa sandi untuk file .p12 agar openssl dapat membacanya. Maka Anda perlu memasukkan frasa sandi baru yang akan digunakan untuk mengenkripsi file PEM. Sekali lagi untuk tutorial ini saya menggunakan "pushchat" sebagai frasa sandi PEM. Anda harus memilih sesuatu yang lebih aman. Catatan: jika Anda tidak memasukkan frasa sandi PEM, openssl tidak akan memberikan pesan kesalahan tetapi file .pem yang dihasilkan tidak akan memiliki kunci pribadi di dalamnya.
Terakhir, gabungkan sertifikat dan kunci ke dalam satu file .pem:
$ cat PushChatCert.pem PushChatKey.pem > ck.pem
Buka aplikasi Terminal dan masukkan perintah berikut setelah prompt
openssl pkcs12 -in CertificateName.p12 -out CertificateName.pem -nodes
- >> Tutorial Apple sendiri << - adalah satu-satunya rangkaian instruksi yang pernah saya jumpai. Ini lurus ke depan dan saya dapat mengkonfirmasi itu berfungsi baik pada server php linux dan server windows php.
Anda dapat menemukan proses pembuatan 5-langkah mereka tepat di bagian bawah halaman.
Anda dapat melihatnya di sini. Saya memiliki proses terperinci yang dijelaskan dengan gambar, mulai dari membuat sertifikat, ke kunci aplikasi ke profil penyediaan, hingga akhirnya pem. http://docs.moengage.com/docs/apns-certificate-pem-file
CATATAN: Anda harus memiliki peran Agen Tim atau Admin di App Store Connect untuk melakukan tugas-tugas ini. Jika Anda bukan bagian dari Tim di App Store Connect, ini mungkin tidak memengaruhi Anda.
Mengirim pemberitahuan push ke aplikasi iOS memerlukan pembuatan kunci penyandian. Di masa lalu ini adalah proses rumit yang menggunakan kunci dan sertifikat SSL. Setiap sertifikat SSL khusus untuk satu aplikasi iOS. Pada 2016 Apple memperkenalkan mekanisme kunci otentikasi baru yang lebih andal dan lebih mudah digunakan. Kunci otentikasi baru lebih fleksibel, mudah dirawat dan diterapkan lebih dari pada aplikasi iOS.
Meskipun sudah bertahun-tahun sejak kunci otentikasi diperkenalkan, tidak setiap layanan mendukungnya. FireBase dan Amazon Pinpoint mendukung kunci otentikasi. Amazon SNS, Urban Airship, Twilio, dan LeanPlum tidak. Banyak paket perangkat lunak open source belum mendukung kunci otentikasi.
Untuk membuat sertifikat SSL yang diperlukan dan mengekspornya sebagai file PEM yang berisi kunci publik dan pribadi:
Jika Anda sudah mengatur sertifikat SSL untuk aplikasi di situs web Pusat Pengembang Apple, Anda dapat langsung beralih ke Konversi sertifikat ke format PEM. Perlu diingat bahwa Anda akan mengalami masalah jika Anda tidak juga memiliki kunci pribadi yang dihasilkan pada Mac yang menciptakan permintaan penandatanganan yang diupload ke Apple.
Baca terus untuk mengetahui cara menghindari kehilangan jejak kunci pribadi itu.
Xcode tidak mengontrol sertifikat atau kunci untuk pemberitahuan push. Untuk membuat kunci dan mengaktifkan pemberitahuan push untuk suatu aplikasi, Anda harus mengunjungi situs web Pusat Pengembang Apple. Bagian Sertifikat, Pengidentifikasi & Profil akun Anda mengontrol ID Aplikasi dan sertifikat.
Untuk mengakses sertifikat dan profil, Anda harus memiliki keanggotaan Program Pengembang Apple berbayar atau menjadi bagian dari Tim yang melakukannya.
Aplikasi yang menggunakan pemberitahuan push tidak dapat menggunakan ID aplikasi wildcard atau profil penyediaan. Setiap aplikasi mengharuskan Anda mengatur catatan ID Aplikasi di portal Pusat Pengembang Apple untuk mengaktifkan pemberitahuan push.
Membuat sertifikat SSL untuk pemberitahuan push adalah proses dari beberapa tugas. Setiap tugas memiliki beberapa langkah. Semua ini diperlukan untuk mengekspor kunci dalam format P12 atau PEM. Tinjau langkah-langkah sebelum melanjutkan.
Untuk membuat sertifikat, Anda harus membuat Permintaan Penandatanganan Sertifikat (CSR) pada Mac dan mengunggahnya ke Apple.
Kemudian jika Anda perlu mengekspor sertifikat ini sebagai file pkcs12 (alias p12), Anda harus menggunakan gantungan kunci dari Mac yang sama . Ketika permintaan penandatanganan dibuat Akses Keychain menghasilkan satu set kunci di gantungan kunci default. Kunci-kunci ini diperlukan untuk bekerja dengan sertifikat yang akan dibuat Apple dari permintaan penandatanganan.
Ini adalah praktik yang baik untuk memiliki gantungan kunci terpisah khusus untuk kredensial yang digunakan untuk pengembangan. Jika Anda melakukan ini, pastikan gantungan kunci ini disetel sebagai bawaan sebelum menggunakan Certificate Assistant.
Saat membuat Permintaan Penandatanganan Sertifikat, Asisten Sertifikat menghasilkan dua kunci enkripsi di gantungan kunci default. Penting untuk menjadikan gantungan kunci pengembangan sebagai bawaan sehingga kunci-kunci tersebut ada di gantungan kunci yang benar.
Membuat permintaan penandatanganan menghasilkan sepasang kunci. Sebelum permintaan penandatanganan diunggah, verifikasi bahwa gantungan kunci pengembangan memiliki kunci. Nama mereka akan sama dengan Nama Biasa yang digunakan dalam permintaan penandatanganan.
Setelah Permintaan Penandatanganan Sertifikat dibuat, unggah ke Pusat Pengembang Apple. Apple akan membuat sertifikat pemberitahuan push dari permintaan penandatanganan.
Keychain pengembangan Anda sekarang harus memperlihatkan sertifikat push dengan kunci pribadi di bawah Sertifikat Saya di Akses Keychain:
Pada titik ini gantungan kunci pengembangan harus didukung. Banyak tim menyimpan sertifikat push mereka pada drive USB yang aman, berkomitmen untuk kontrol versi internal atau menggunakan solusi cadangan seperti Time Machine. Gantungan kunci pengembangan dapat dibagikan di antara anggota tim yang berbeda karena tidak berisi kredensial penandatanganan kode pribadi.
File gantungan kunci terletak di
~/Library/Keychains
.
Beberapa layanan push pihak ketiga memerlukan sertifikat dalam format Privacy Enhanced Mail (PEM), sementara yang lain memerlukan Public-Key Cryptography Standards # 12 (PKCS12 atau P12). Sertifikat yang diunduh dari Apple dapat digunakan untuk mengekspor sertifikat dalam format ini - tetapi hanya jika Anda telah menyimpan kunci privat.
Saya akan menyarankan solusi yang jauh lebih sederhana. Cukup gunakan Sertifikat .
Certifire adalah aplikasi macOS yang menghasilkan Sertifikat Pemberitahuan Push Apple hanya dengan satu klik dalam beberapa detik.
Berikut langkah-langkahnya:
1. Unduh aplikasi.
2. Masuk menggunakan kredensial Akun Pengembang Apple Anda.
3. Pilih App-ID
4. Klik tombol "Hasilkan"
5. Anda selesai!
Anda akan mendapatkan sertifikat APN dalam format .pem dan juga dalam format .p12. Terlebih lagi, Anda juga akan mendapatkan kombinasi .pem dan .p12 (kunci + cert)!
Lebih dari itu, Anda juga akan mendapatkan versi tanpa frasa sandi dari semua sertifikat ini!
Ini adalah bagaimana saya melakukannya pada Windows 7, setelah menginstal OpenSSL (tautan menuju ke installer Win32, pilih versi terbaru dan bukan versi ringan).
Dengan metode ini, Anda hanya perlu .cer
mengunduh file dari Apple.
c:\OpenSSL-Win32\bin\openssl.exe x509 -in aps_development.cer -inform DER -out developer_identity.pem -outform PEM
ini akan membuat file yang kemudian Anda perlu menambahkan kunci pribadi Anda.
----- BEGIN PRIVATE KUNCI -----
MIIEuwIBADANBgkqhk .... dll
MIIEuwIBADANBgkqhk .... dll
MIIEuwIBADANBgkqhk .... dll
MIIEuwIBADANBgkqhk .... dll
----- AKHIR KUNCI PRIVATE -----
----- BEGIN CERTIFICATE -----
AwIBAgwIBADAwIBADA .... dll
AwIBAgwIBADAwIBADA .... dll
AwIBAgwIBADAwIBADA .... dll
----- END CERTIFICATE -----
Itu dia.
Ada cara termudah untuk membuat file .Pem jika Anda sudah membuka file p12 di akses gantungan kunci Anda.
Buka terminal dan masukkan perintah di bawah ini:
Untuk Devlopment openssl pkcs12 -dalam apns-div-cert.p12 -keluar apns-div-cert.pem -nodes -clcerts
Untuk Produksi openssl pkcs12 -dalam apns-dist-cert.p12 -keluar apns-dist-cert.pem -nodes -clcerts
Ganti nama file P12 Anda dengan nama ini: apns-div-cert.p12 jika tidak, Anda harus memasukkan nama file Anda. Terima kasih!!
Saya tidak pernah ingat openssl
perintah yang diperlukan untuk membuat .pem
file, jadi saya membuat skrip bash ini untuk menyederhanakan proses:
#!/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
Beri nama, misalnya, signpem.sh
dan simpan di folder pengguna Anda ( /Users/<username>
?). Setelah membuat file, lakukan chmod +x signpem.sh
untuk membuatnya dapat dieksekusi dan kemudian Anda dapat menjalankan:
~/signpem myCertificate.p12 myCertificate.pem
Dan myCertificate.pem
akan dibuat.