Wygeneruj plik .pem służący do konfigurowania powiadomień Apple Push

290

Próbowałem i próbowałem wygenerować plik .pem, za każdym razem generując certyfikaty z konta klienta, a następnie generując plik .pem za pomocą terminala, ale nie ma sensu. Czy ktoś może podać procedurę krok po kroku?

Harsh Parikh
źródło

Odpowiedzi:

936

Aby włączyć powiadomienie wypychane dla aplikacji na iOS, musisz utworzyć i przesłać do nas certyfikat Apple Push Notification Certificate (plik .pem), abyśmy mogli połączyć się z serwerem Apple Push Server w Twoim imieniu.

( Zaktualizowana wersja ze zaktualizowanymi zrzutami ekranu tutaj )

Krok 1: Zaloguj się do portalu administracyjnego iOS, kliknij „Certyfikaty” na lewym pasku nawigacyjnym. Następnie kliknij przycisk „+”.

wprowadź opis zdjęcia tutaj

Krok 2: Wybierz opcję powiadomień push Apple z usługi SSL (Produkcja) w sekcji Dystrybucja, a następnie kliknij przycisk „Kontynuuj”.

wprowadź opis zdjęcia tutaj

Krok 3: Wybierz identyfikator aplikacji, którego chcesz użyć dla aplikacji BYO (jak utworzyć identyfikator aplikacji), a następnie kliknij „Kontynuuj”, aby przejść do następnego kroku.

wprowadź opis zdjęcia tutaj

Krok 4: Wykonaj kroki „Informacje o tworzeniu żądania podpisania certyfikatu (CSR)”, aby utworzyć żądanie podpisania certyfikatu.

wprowadź opis zdjęcia tutaj

W celu uzupełnienia instrukcji dostarczonej przez Apple. Oto kilka dodatkowych zrzutów ekranu, które pomogą Ci wykonać wymagane kroki:

Krok 4 Dodatkowy zrzut ekranu 1: Przejdź do Asystenta certyfikatu dostępu do pęku kluczy na komputerze Mac.

wprowadź opis zdjęcia tutaj

Krok 4 Dodatkowy zrzut ekranu 2: Wpisz informacje o certyfikacie. Kliknij Kontynuuj.

wprowadź opis zdjęcia tutaj

Krok 5: Prześlij plik „.certSigningRequest” wygenerowany w kroku 4, a następnie kliknij przycisk „Generuj”.

wprowadź opis zdjęcia tutaj

Krok 6: Kliknij „Gotowe”, aby zakończyć rejestrację, strona portalu administracyjnego iOS zostanie odświeżona i wygląda następująco:

wprowadź opis zdjęcia tutaj

Następnie kliknij przycisk „Pobierz”, aby pobrać właśnie utworzony certyfikat (plik .cer). - Kliknij dwukrotnie pobrany plik, aby zainstalować certyfikat w Keychain Access na komputerze Mac.

Krok 7: Na komputerze Mac przejdź do „pęku kluczy” i poszukaj właśnie zainstalowanego certyfikatu. Jeśli nie masz pewności, który certyfikat jest prawidłowy, powinien rozpocząć się od „Apple Push IOS Push Services:”, a następnie identyfikatora pakietu aplikacji.

wprowadź opis zdjęcia tutaj

Krok 8: Rozwiń certyfikat, powinieneś zobaczyć klucz prywatny z nazwą lub nazwą firmy. Wybierz oba elementy za pomocą klawisza „Wybierz” na klawiaturze, kliknij prawym przyciskiem myszy (lub kliknij cmd, jeśli używasz myszy z jednym przyciskiem), wybierz „Eksportuj 2 elementy”, jak poniżej:

wprowadź opis zdjęcia tutaj

Następnie zapisz plik p12 o nazwie „pushcert.p12” na pulpicie - teraz zostaniesz poproszony o podanie hasła w celu jego ochrony, możesz albo kliknąć Enter, aby pominąć hasło, albo wprowadzić żądane hasło.

Krok 9: Teraz najtrudniejsza część - otwórz „Terminal” na komputerze Mac i uruchom następujące polecenia:

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

Krok 10: Usuń pushcert.p12 z pulpitu, aby uniknąć błędnego przesłania go do budowy własnego obszaru. Otwórz „Terminal” na komputerze Mac i uruchom następujące polecenia:

cd
cd Desktop
rm pushcert.p12

Krok 11 - NOWA AKTUALIZACJA AWS: Utwórz nową, pushcert.p12aby przesłać do AWS SNS. Kliknij dwukrotnie nowy pushcert.pem, a następnie wyeksportuj ten zaznaczony tylko na zielono.

wprowadź opis zdjęcia tutaj Źródło: nowa aktualizacja AWS

Teraz pomyślnie utworzyłeś certyfikat Apple Push Notification Certificate (plik .p12)! Musisz później przesłać ten plik do naszego obszaru Zbuduj swój własny. :)

Ravi_Parmar
źródło
11
Wygląda na to, że możesz teraz wyeksportować bezpośrednio z pęku kluczy do pliku PEM (kroki 8-10).
Kyle Clegg,
10
@KyleClegg: jak?
eugene
3
Co to jest obszar „Zbuduj swój własny” i dlaczego musimy przesłać do niego plik pem?
Rafi
1
dlaczego wszystkie te odpowiedzi w Internecie ignorują prawdziwe pytanie ciągle zadawane o to, co to jest „Zbuduj swój własny”? Gdzie przesyłasz ten PEM, jeśli używasz Xcode?
RobertyBob
1
W moim przypadku musiałem utworzyć dwa pliki pem z p12 cert. Wystarczy wyeksportować odpowiednio plik certyfikatu i klucz w ramach dostępu do pęku kluczy zamiast eksportować 2 elementy razem. Ale ta odpowiedź jest zdecydowanie niesamowita!
wei
79

Dzisiaj jest o wiele prostsze rozwiązanie - pem . To narzędzie znacznie ułatwia życie.

Na przykład, aby wygenerować lub odnowić certyfikat powiadomienia wypychanego, wystarczy wpisać:

fastlane pem 

i dzieje się to w niecałą minutę. Jeśli potrzebujesz certyfikatu piaskownicy, wprowadź:

fastlane pem --development

I to wszystko.

mikejd
źródło
9
I nie tylko PEM. Całe narzędzie Fastlane jest absolutnie genialne
Benjamin
Czy jest również dostępny dla systemów innych niż Apple?
twicejr,
@KrauseFx, jeśli wygeneruję go za pomocą PEM, jak mogę go wyświetlić tutaj: developer.apple.com/account/ios/certificate ? Uważam, że to bardzo przydatne, aby zobaczyć najnowszą datę ważności itp. Czy to dzieje się automatycznie?
IonicBurger,
1
@Nikola Żadne działanie w iTunes Connect nie jest wymagane, możesz od razu użyć tego pliku pem
KrauseFx
1
@mikejd nie musimy określać, którego p12 należy użyć dla pem?
Maulik,
10
$ cd Desktop
$ openssl x509 -in aps_development.cer -inform der -out PushChatCert.pem
Ahmed Abdallah
źródło
czy to działa? Zrobiłem plik PEM w systemie Windows 10 przy użyciu tej metody, ale otrzymałem komunikat „Nie można połączyć się z 'ssl: \ / \ / gateway.sandbox.push.apple.com”, gdy używam wygenerowanego pem do wysyłania powiadomień push.
Arivan Bastos
3

Apple zmieniło nazwę wydanego certyfikatu. Możesz teraz używać tego samego certyfikatu zarówno do programowania, jak i produkcji. Chociaż nadal możesz poprosić o certyfikat tylko do programowania, nie możesz już żądać certyfikatu tylko do produkcji.

patrz poniżej screnshot

Hardik Bar
źródło
1

jest to bardzo proste po wyeksportowaniu pliku Cert.p12 i key.p12, poniżej znajduje się polecenie generowania pliku .pem „apns”.

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

Powyższe polecenie jest przydatne zarówno dla Sandbox, jak i Production.

Ilesh P.
źródło
1

Zgodnie z rozwiązywaniem problemów z certyfikatami wypychanymi

Certyfikat SSL dostępny na koncie programu programisty Apple zawiera klucz publiczny, ale nie klucz prywatny. Klucz prywatny istnieje tylko na komputerze Mac, który utworzył żądanie podpisania certyfikatu przesłane do Apple. Zarówno klucz publiczny, jak i prywatny są niezbędne do wyeksportowania pliku PEM (Privacy Enhanced Mail).

Istnieje prawdopodobieństwo, że nie możesz wyeksportować działającego PEM z certyfikatu dostarczonego przez klienta, ponieważ nie masz klucza prywatnego. Certyfikat zawiera klucz publiczny, podczas gdy klucz prywatny prawdopodobnie istnieje tylko na komputerze Mac, który utworzył oryginalny CSR.

Możesz albo:

  1. Spróbuj uzyskać klucz prywatny z komputera Mac, który pierwotnie utworzył CSR. Eksportowanie PEM można wykonać z tego komputera Mac lub możesz skopiować klucz prywatny na inny komputer Mac.

lub

  1. Utwórz nowy CSR, nowy certyfikat SSL i tym razem wykonaj kopię zapasową klucza prywatnego.
zgasić
źródło
0

Dzięki! na wszystkie powyższe odpowiedzi. Mam nadzieję, że masz plik .p12. Teraz otwórz terminal i wpisz następujące polecenie. Ustaw terminal na ścieżkę, w której umieściłeś plik .12.

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

Teraz tworzony jest plik .pem .

Sprawdź plik .pem Najpierw otwórz plik .pem w edytorze tekstu, aby wyświetlić jego zawartość. Treść certyfikatu powinna mieć format, jak pokazano poniżej. Upewnij się, że plik pem zawiera zarówno treść certyfikatu (od BEGIN CERTIFICATE do END CERTIFICATE), jak i klucz prywatny certyfikatu (od BEGIN PRIVATE KEY do END PRIVATE KEY):

> 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-----

Ponadto sprawdzasz ważność certyfikatu, przechodząc do Dekodera certyfikatu SSLShopper i wklejając treść certyfikatu (od BEGIN CERTIFICATE do END CERTIFICATE), aby uzyskać wszystkie informacje o certyfikacie, jak pokazano poniżej:

wprowadź opis zdjęcia tutaj

Gurjinder Singh
źródło