Apple Push Bildirimlerini ayarlamak için kullanılan .pem dosyası oluşturun


290

Denedim ve her zaman müşterinin hesabından sertifika üreten ve sonra terminal kullanarak .pem dosyası üreten bir .pem dosyası oluşturmaya çalıştı, ancak hiçbir faydası yoktur. Herkes adım adım prosedür verebilir mi?

Yanıtlar:


936

İOS uygulamanız için Anlık Bildirimi etkinleştirmek için Apple Anlık Bildirim Sertifikasını (.pem dosyası) bize oluşturmanız ve yüklemeniz gerekir, böylece sizin için Apple Anlık Sunucusuna bağlanabiliriz.

( Güncellenmiş ekran görüntüleri ile güncellenmiş sürüm Burada )

1. Adım: iOS Hazırlama Portalı'na giriş yapın, soldaki gezinme çubuğunda "Sertifikalar" ı tıklayın. Ardından "+" düğmesini tıklayın.

resim açıklamasını buraya girin

Adım 2: Dağıtım bölümünden Apple Push Notification service SSL (Production) seçeneğini seçin ve "Continue" düğmesine tıklayın.

resim açıklamasını buraya girin

3. Adım: BYO uygulamanız için kullanmak istediğiniz Uygulama Kimliğini seçin (Uygulama Kimliği Nasıl Oluşturulur), ardından bir sonraki adıma geçmek için "Devam" ı tıklayın.

resim açıklamasını buraya girin

Adım 4: Sertifika İmzalama İsteği oluşturmak için "Sertifika İmzalama İsteği (CSR) Oluşturma Hakkında" adımlarını izleyin.

resim açıklamasını buraya girin

Apple tarafından sağlanan talimatı tamamlamak için. Gerekli adımları tamamlamanıza yardımcı olacak ek ekran görüntülerinden bazıları şunlardır:

Adım 4 Tamamlayıcı Ekran Görüntüsü 1: Mac'inizde Anahtarlık Erişimi Sertifika Yardımcısı'na gidin.

resim açıklamasını buraya girin

Adım 4 Ek Ekran Görüntüsü 2: Sertifika Bilgilerini doldurun. Devam'ı tıklayın.

resim açıklamasını buraya girin

Adım 5: Adım 4'te oluşturulan ".certSigningRequest" dosyasını yükleyin ve ardından "Oluştur" düğmesini tıklayın.

resim açıklamasını buraya girin

Adım 6: Kaydı bitirmek için "Bitti" yi tıklayın, aşağıdaki ekrana benzeyen iOS Hazırlama Portalı Sayfası yenilenecektir:

resim açıklamasını buraya girin

Ardından, şimdi oluşturduğunuz sertifikayı (.cer dosyası) indirmek için "İndir" düğmesini tıklayın. - Sertifikayı Mac'inizdeki Anahtarlık Erişimi'ne yüklemek için indirilen dosyayı çift tıklayın.

Adım 7: Mac'inizde "Anahtarlık" a gidin, az önce yüklediğiniz sertifikayı arayın. Hangi sertifikanın doğru olduğundan emin değilseniz, "Apple Production IOS Push Services:" ve ardından uygulamanızın paket kimliğiyle başlamalıdır.

resim açıklamasını buraya girin

Adım 8: Sertifikayı genişletin, adınızı veya şirketinizin adını içeren özel anahtarı görmelisiniz. Klavyenizdeki "Seç" tuşunu kullanarak her iki öğeyi de seçin, sağ tıklayın (veya tek düğmeli fare kullanıyorsanız cmd tıklama), aşağıdaki gibi "2 öğeyi dışa aktar" ı seçin:

resim açıklamasını buraya girin

Daha sonra "pushcert.p12" adlı p12 dosyasını Masaüstünüze kaydedin - şimdi korumak için bir parola girmeniz istenecek, parolayı atlamak veya istediğiniz bir parolayı girmek için Enter'a tıklayabilirsiniz.

Adım 9: Şimdi en zor kısım - Mac'inizdeki "Terminal" i açın ve aşağıdaki komutları çalıştırın:

cd
cd Desktop
openssl pkcs12 -in pushcert.p12 -out pushcert.pem -nodes -clcerts

Adım 10: Kendi Alanınızı Oluşturma alanına yanlış yüklemeyi önlemek için pushcert.p12 dosyasını Masaüstü'nden kaldırın. Mac'inizde "Terminal" i açın ve aşağıdaki komutları çalıştırın:

cd
cd Desktop
rm pushcert.p12

Adım 11 - YENİ AWS GÜNCELLEME: pushcert.p12AWS SNS'e göndermek için yeni oluşturun . Yeni üzerine çift tıklayın pushcert.pem, ardından sadece yeşil ile vurgulananı dışa aktarın.

resim açıklamasını buraya girin Kredi bilgileri: AWS yeni güncelleme

Şimdi bir Apple Anında Bildirim Sertifikası (.p12 dosyası) başarıyla oluşturdunuz! Bu dosyayı daha sonra Kendi Kendinizi Oluşturun alanına yüklemeniz gerekecek. :)


11
Görünüşe göre artık Keychain'den doğrudan bir PEM dosyasına dışa aktarabilirsiniz (8-10. Adımlar).
Kyle Clegg

10
@KyleClegg: nasıl?
eugene

3
"Kendiniz Oluşturun" alanı nedir ve neden pem dosyasını buraya yüklememiz gerekiyor?
Rafi

1
Neden internetteki tüm bu cevaplar sürekli olarak 'Kendi Kendinizi İnşa Et' diye sorulan gerçek soruyu görmezden geliyor? Xcode kullanıyorsanız bu PEM'i nereye yüklersiniz?
RobertyBob

1
Benim durumumda, p12 sertifikasından iki pem dosyası oluşturmam gerekiyordu. Sadece 2 öğeyi birlikte vermek yerine sırasıyla anahtarlık erişiminde sertifika ve anahtar dosyasını dışa aktarın. Ama bu cevap kesinlikle harika!
wei

79

Bugün çok daha basit bir çözüm var - pem . Bu araç hayatı çok daha kolay hale getirir.

Örneğin, push bildirim sertifikanızı oluşturmak veya yenilemek için şunu girin:

fastlane pem 

ve bir dakikadan daha kısa sürede tamamlandı. Korumalı alan sertifikasına ihtiyacınız varsa, şunu girin:

fastlane pem --development

Ve bu güzel.


9
Ve sadece PEM de yok. Fastlane aracının tamamı kesinlikle mükemmel
Benjamin

Elma olmayan sistemler için de mevcut mu?
twicejr

@KrauseFx, pem yoluyla oluşturursam, nasıl gösterebilirim: developer.apple.com/account/ios/certificate ? Bu son son tarih vb görmek için oldukça yararlı buluyorum? Bu otomatik olarak gerçekleşen bir şey mi?
IonicBurger

1
@Nikola iTunes Connect'te herhangi bir işlem yapmanız gerekmez, bu pem dosyasını hemen kullanabilirsiniz
KrauseFx

1
@ pike için hangi p12'nin kullanılması gerektiğini belirtmemize gerek yok mu?
Maulik

10
$ cd Desktop
$ openssl x509 -in aps_development.cer -inform der -out PushChatCert.pem

Bu çalışıyor mu? Bu yöntemi kullanarak Windows 10'da bir PEM dosyası yaptım, ancak push bildirimleri göndermek için oluşturulan pem'i kullandığımda bir "ssl: \ / \ / gateway.sandbox.push.apple.com" bağlanılamıyor.
Arivan Bastos

3

Apple, verilen sertifikanın adını değiştirdi. Artık aynı sertifikayı hem geliştirme hem de üretim için kullanabilirsiniz. Yine de yalnızca geliştirme sertifikası isteyebilirsiniz ancak artık yalnızca üretim sertifikası talep edemezsiniz.

lütfen aşağıya bakın


1

Cert.p12 ve key.p12 dosyalarını dışa aktardıktan sonra çok basittir. Lütfen 'apns' .pem dosyası oluşturmak için aşağıdaki komutu bulun.

https://www.sslshopper.com/ssl-converter.html

command to create apns-dev.pem from Cert.pem and Key.pem

    

openssl rsa -in Key.pem -out apns-dev-key-noenc.pem

    

cat Cert.pem apns-dev-key-noenc.pem > apns-dev.pem

Yukarıdaki komut hem Korumalı Alan hem de Üretim için kullanışlıdır.


1

Göre Giderme Push Sertifikası Sorunları

Apple Developer Program hesabınızda bulunan SSL sertifikası genel bir anahtar içeriyor, ancak özel bir anahtar içermiyor. Özel anahtar yalnızca Apple'a yüklenen Sertifika İmzalama İsteğini oluşturan Mac'te bulunur. Gizlilik Geliştirilmiş Posta (PEM) dosyasını dışa aktarmak için hem genel hem de özel anahtarlar gereklidir.

İstemci tarafından sağlanan sertifikadan çalışan bir PEM'i dışa aktaramamanızın nedeni, özel anahtarınızın bulunmamasıdır. Sertifika genel anahtarı içerirken, özel anahtar muhtemelen yalnızca orijinal CSR'yi oluşturan Mac'te bulunur.

Şunlardan birini yapabilirsiniz:

  1. İlk olarak CSR'yi oluşturan Mac'ten özel anahtarı almaya çalışın. PEM'i dışa aktarmak o Mac'ten yapılabilir veya özel anahtarı başka bir Mac'e kopyalayabilirsiniz.

veya

  1. Yeni bir CSR, yeni SSL sertifikası oluşturun ve bu sefer özel anahtarı yedekleyin.

0

Teşekkürler! yukarıdaki tüm cevaplara. Umarım .p12 dosyanız vardır. Şimdi, terminal yazma aşağıdaki komutu açın. Terminali, .12 dosyasını koyduğunuz yola ayarlayın.

$ openssl pkcs12 -in yourCertifcate.p12 -out pemAPNSCert.pem -nodes
Enter Import Password: <Just enter your certificate password>
MAC verified OK

Şimdi .pem dosyanız oluşturuldu.

.Pem dosyasını doğrulayın Önce, içeriğini görüntülemek için .pem dosyasını bir metin düzenleyicisinde açın. Sertifika içeriği aşağıda gösterildiği şekilde olmalıdır. Pem dosyasının hem Sertifika içeriği (BEGIN CERTIFICATE - END CERTIFICATE) hem de Certificate Private Key (BEGIN PRIVATE KEY - END PRIVATE KEY) arasında olduğundan emin olun:

> Bag Attributes
>     friendlyName: Apple Push Services:<Bundle ID>
>     localKeyID: <> subject=<>
> -----BEGIN CERTIFICATE-----
> 
> <Certificate Content>
> 
> -----END CERTIFICATE----- Bag Attributes
>     friendlyName: <>
>     localKeyID: <> Key Attributes: <No Attributes>
> -----BEGIN PRIVATE KEY-----
> 
> <Certificate Private Key>
> 
> -----END PRIVATE KEY-----

Ayrıca, SSLShopper Sertifika Kod Çözücüsüne giderek sertifikanın geçerliliğini kontrol edersiniz ve sertifika hakkında tüm bilgileri almak için Sertifika İçeriğini (BEGIN CERTIFICATE - END CERTIFICATE) yapıştırın:

resim açıklamasını buraya girin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.