Definicja FYI .pem: serverfault.com/a/21158/193377 PEM sam w sobie nie jest certyfikatem, to tylko sposób kodowania danych. .... można bezpiecznie wkleić do treści wiadomości e-mail, ponieważ zawiera ona linie zakotwiczenia i jest 7-bitowa czysta.
AnneTheAgile
Odpowiedzi:
365
Oto, co zrobiłem, From: blog.boxedice.com i „iPhone Advanced Projects”, rozdział 10 autorstwa Joe Pezzillo.
Z plikiem aps_developer_identity.cer w pęku kluczy:
Uruchom dostęp do pęku kluczy z lokalnego komputera Mac i z pęku kluczy logowania, filtruj według kategorii Certyfikaty. Zobaczysz rozwijaną opcję o nazwie „Apple Development Push Services”
Kliknij prawym przyciskiem myszy „Apple Development Push Services”> Eksportuj „Apple Development Push Services ID123 ″. Zapisz to jako apns-dev-cert.p12plik w miejscu, do którego masz do niego dostęp. Nie ma potrzeby podawania hasła.
Następne polecenie generuje certyfikat w terminalu Maca dla formatu PEM (Certyfikat bezpieczeństwa poczty wzmocnionego prywatności):
Wykonałem powyższe kroki i teraz wszystko działa. Zachowałem certyfikat i skrypt php na moim lokalnym serwerze WWW (Xampp). Jestem w stanie uzyskać token urządzenia i używam go w skrypcie php. Skrypt php może łączyć się i wysyłać dane ładunku. Ale nadal nie mogę uzyskać powiadomienia PUSH. Jaki jest problem ? Czy powiadomienia potrzebują czasu, aby dotrzeć ???
Biranchi
12
W przypadku dostępu do pęku kluczy Mavericks (10.9) istnieje opcja eksportu do pliku .pem! Po prostu kliknij prawym przyciskiem myszy „Certyfikat Apple Development / Production iOS Push Services w Keychain Access i wybierz opcję eksportu. Zmień format pliku na .pem - gotowe! Dostępne również jako opcje eksportu: .p7b i .p12
tylerl
5
.pem jest dla mnie wyłączony, yosemite beta7. Mam pewne problemy z utworzeniem .pem, kiedy go otwieram, mówi, że jest przeznaczony do dystrybucji zamiast dev
Cristi Băluță
2
.pem nie jest dla mnie wyłączony, ale nie mogę zapisać jako p12. Tak to wygląda: i.imgur.com/U2M40dU.png
FooBar
2
W przypadku systemu macOS 10.14 Mojave przy użyciu aplikacji Dostęp do pęku kluczy możesz wybrać opcję Eksportuj swój „certyfikat Apple Push Services: com.yourBundleIdentifier” do formatu pliku „Poczta o zwiększonej prywatności (.pem)” i zapisuj ją w dowolnym momencie.
Krok 3 (opcjonalnie): Jeśli chcesz usunąć frazę hasła zadaną w drugim kroku openssl rsa -in apns-dev-key.pem -out apns-dev-key-noenc.pem
Krok 4: Teraz musimy połączyć klucz .pem i certyfikat .pem, aby uzyskać programistyczny plik .pem potrzebny do powiadomień push w fazie opracowywania aplikacji.
Jeśli wykonałeś 3 krok, uruchom: cat apns-dev-cert.pem apns-dev-key-noenc.pem > apns-dev.pem
Jeśli trzeci krok nie został wykonany, uruchom: cat apns-dev-cert.pem apns-dev-key.pem > apns-dev.pem
Krok 5: Sprawdź ważność certyfikatu i łączność z APNS
Jeśli trzeci krok nie został wykonany, uruchom: openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert apns-dev-cert.pem -key apns-dev-key.pem
Krok 3 (opcjonalnie): Jeśli chcesz usunąć frazę hasła zadaną w drugim kroku openssl rsa -in apns-pro-key.pem -out apns-pro-key-noenc.pem
Krok 4: Teraz musimy scalić plik klucza .pem i certyfikat .pem, aby uzyskać plik produkcyjny .pem potrzebny do powiadomień push w fazie produkcyjnej aplikacji.
Jeśli wykonałeś 3 krok, uruchom: cat apns-pro-cert.pem apns-pro-key-noenc.pem > apns-pro.pem
Jeśli trzeci krok nie został wykonany, uruchom: cat apns-pro-cert.pem apns-pro-key.pem > apns-pro.pem
Krok 5: Sprawdź ważność certyfikatu i łączność z APNS.
Zapisałem to w moim cennym skarbcu! : P Najlepsza odpowiedź w historii !!
Zaczernienie
3
Jesteś bogiem, to działa, dziękuję. GŁOS W GŁOS. To powinna być odpowiedź, ponieważ szczegółowo omawia, jak ją stworzyć krok po kroku
MNM
2
Z pewnością powinna to być akceptowana odpowiedź, ponieważ odpowiedź @Rahul Sharma nie przyniosła oczekiwanego rezultatu, podczas gdy ta odpowiedź była doskonała.
Nowdeen
Dzięki zaoszczędziłeś mi godziny na sprawdzenie ważności certyfikatu. To powinna być akceptowana odpowiedź @Biranchi
Sourabh Sharma
59
Kroki:
Utwórz CSR za pomocą Key Chain Access
Utwórz P12 za pomocą Key Chain Access przy użyciu klucza prywatnego
Identyfikator i certyfikat aplikacji APNS
W ten sposób otrzymujesz trzy pliki:
CSR
Klucz prywatny jako plik p12 ( PushChatKey.p12)
Certyfikat SSL, aps_development.cer
Przejdź do folderu, do którego pobrałeś pliki, w moim przypadku Pulpit:
$ cd ~/Desktop/
Przekonwertuj plik .cer na plik .pem:
$ openssl x509 -in aps_development.cer -inform der -out PushChatCert.pem
Przekonwertuj plik .p12 klucza prywatnego na plik .pem:
MAC verified OK
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
Najpierw musisz wprowadzić hasło do pliku .p12, aby openssl mógł go odczytać. Następnie musisz wprowadzić nowe hasło, które zostanie użyte do zaszyfrowania pliku PEM. Ponownie w tym samouczku użyłem „pushchat” jako hasła PEM. Powinieneś wybrać coś bezpieczniejszego. Uwaga: jeśli nie wprowadzisz hasła PEM, openssl nie wyświetli komunikatu o błędzie, ale wygenerowany plik .pem nie będzie zawierał klucza prywatnego.
Na koniec połącz certyfikat i klucz w jednym pliku .pem:
- >> Samouczek firmy Apple << - to jedyny działający zestaw instrukcji, z jakim się spotkałem. Jest to proste i mogę potwierdzić, że działa doskonale zarówno na serwerze php linux, jak i serwerze php systemu Windows.
Możesz znaleźć ich 5-etapowy proces tworzenia pem na dole strony.
Tak! Wystarczy postępować zgodnie z prostym samouczkiem. Tylko jedno proste polecenie openssl. Nie wiem, czy to ma znaczenie, ale uruchomiłem polecenie przez SSH na serwerze, który łączy się z APNS.
tylerl
1
@tylerl, PEM można wygenerować z dowolnej maszyny - nie musi to być serwer, na którym będzie się znajdował.
capikaw
Czy muszę uruchamiać ten proces na samym serwerze, na którym jest wdrażany kod PHP? czy mogę użyć pliku .pem wygenerowanego z mojego komputera Mac?
UWAGA: Aby wykonać którekolwiek z tych zadań, musisz mieć rolę agenta zespołu lub administratora w App Store Connect. Jeśli nie należysz do zespołu w App Store Connect, prawdopodobnie nie ma to na Ciebie wpływu.
Wysyłanie powiadomień push do aplikacji iOS wymaga utworzenia kluczy szyfrowania. W przeszłości był to uciążliwy proces wykorzystujący klucze SSL i certyfikaty. Każdy certyfikat SSL był specyficzny dla jednej aplikacji na iOS. W 2016 roku Apple wprowadził nowy mechanizm klucza uwierzytelniania, który jest bardziej niezawodny i łatwiejszy w użyciu. Nowe klucze uwierzytelniania są bardziej elastyczne, proste w utrzymaniu i mają zastosowanie do większej liczby użytkowników niż w aplikacji na iOS.
Mimo że od wprowadzenia kluczy uwierzytelniających minęło wiele lat, nie każda usługa je obsługuje. FireBase i Amazon Pinpoint obsługują klucze uwierzytelniania. Amazon SNS, Urban Airship, Twilio i LeanPlum tego nie robią. Wiele pakietów oprogramowania typu open source nie obsługuje jeszcze kluczy uwierzytelniających.
Aby utworzyć wymagany certyfikat SSL i wyeksportować go jako plik PEM zawierający klucze publiczne i prywatne:
Przejdź do certyfikatów, identyfikatorów i profili
Utwórz lub edytuj swój identyfikator aplikacji.
Włącz powiadomienia push dla identyfikatora aplikacji
Czytaj dalej, aby dowiedzieć się, jak uniknąć utraty śledzenia tego klucza prywatnego.
Przejdź do certyfikatów, identyfikatorów i profili
Xcode nie kontroluje certyfikatów ani kluczy do powiadomień push. Aby utworzyć klucze i włączyć powiadomienia push dla aplikacji, musisz przejść do witryny Apple Developer Center. Sekcja Certyfikaty, identyfikatory i profile konta kontroluje identyfikatory aplikacji i certyfikaty.
Aby uzyskać dostęp do certyfikatów i profili, musisz mieć płatne członkostwo w programie Apple Developer Program lub należeć do zespołu, który to robi.
Przejdź do Konta , a następnie Certyfikaty, identyfikatory i profile
Utwórz identyfikator aplikacji
Aplikacje korzystające z powiadomień push nie mogą używać wieloznacznych identyfikatorów aplikacji ani profili obsługi administracyjnej. Każda aplikacja wymaga skonfigurowania rekordu App ID w portalu Apple Developer Center, aby włączyć powiadomienia push.
Przejdź do identyfikatorów aplikacji w obszarze identyfikatory
Wyszukaj swoją aplikację, korzystając z identyfikatora pakietu. Może już istnieć.
Jeśli nie ma istniejącego identyfikatora aplikacji dla aplikacji, kliknij przycisk (+), aby ją utworzyć.
Wybierz opcję Explicit App ID w sekcji App ID Suffix.
Wprowadź identyfikator pakietu dla aplikacji.
Przewiń w dół i włącz powiadomienia push .
Kliknij Kontynuuj .
Na następnym ekranie kliknij Zarejestruj, aby zakończyć tworzenie identyfikatora aplikacji.
Włącz powiadomienia push dla identyfikatora aplikacji
Przejdź do identyfikatorów aplikacji w obszarze identyfikatory
Kliknij identyfikator aplikacji, aby wyświetlić szczegóły i przewinąć w dół.
Kliknij Edytuj
Na ekranie Ustawienia identyfikatora aplikacji przewiń w dół do opcji Powiadomienia push
Zaznacz pole wyboru, aby włączyć powiadomienia push.
Tworzenie certyfikatów SSL dla powiadomień push to proces składający się z kilku zadań. Każde zadanie ma kilka kroków. Wszystko to jest niezbędne do eksportu kluczy w formacie P12 lub PEM. Przejrzyj kroki przed kontynuowaniem.
Dodaj certyfikat SSL do identyfikatora aplikacji
W sekcji Development SSL Certificate kliknij Create Certificate . Będziesz musiał to zrobić później również w przypadku produkcji.
Apple poprosi Cię o utworzenie żądania podpisania certyfikatu
Aby utworzyć certyfikat, musisz wysłać żądanie podpisania certyfikatu (CSR) na komputerze Mac i przesłać je do Apple.
Później, jeśli chcesz wyeksportować ten certyfikat jako plik pkcs12 (aka p12), będziesz musiał użyć pęku kluczy z tego samego komputera Mac . Po utworzeniu żądania podpisania Dostęp do pęku kluczy generuje zestaw kluczy w domyślnym pęku kluczy. Te klucze są niezbędne do pracy z certyfikatem, który Apple utworzy na podstawie żądania podpisania.
Dobrą praktyką jest posiadanie oddzielnego pęku kluczy specjalnie dla poświadczeń używanych do programowania. Jeśli to zrobisz, upewnij się, że ten pęk kluczy jest ustawiony jako domyślny przed użyciem Asystenta certyfikatu.
Utwórz pęku kluczy dla poświadczeń programistycznych
Otwórz dostęp do pęku kluczy na komputerze Mac
W menu Plik wybierz Nowy pęku kluczy ...
Nadaj pękowi kluczy opisową nazwę, na przykład „Programowanie współdzielone” lub nazwę aplikacji
Utwórz żądanie podpisania certyfikatu (CSR)
Podczas tworzenia żądania podpisania certyfikatu Asystent certyfikatu generuje dwa klucze szyfrowania w domyślnym pęku kluczy. Ważne jest, aby programowanie pęku kluczy było domyślnym, aby klucze znajdowały się we właściwym pęku kluczy.
Otwórz dostęp do pęku kluczy na komputerze Mac.
Kliknij z naciśniętym klawiszem Control na rozwijanym pęku kluczy na liście pęków kluczy
Wybierz Ustaw pęk kluczy jako domyślny „Programowanie współdzielone”
Z menu Dostęp do pęku kluczy wybierz Asystent certyfikatu , a następnie z podmenu
Żądaj certyfikatu od urzędu certyfikacji ....
Gdy pojawi się Asystent certyfikatu, zaznacz opcję Zapisano na dysku .
Wprowadź adres e-mail powiązany z Twoim członkostwem w programie Apple Developer w polu Adres e-mail użytkownika .
Wprowadź nazwę klucza w polu Nazwa zwykła . Dobrym pomysłem jest użycie identyfikatora pakietu aplikacji jako części nazwy zwyczajowej. Dzięki temu łatwo jest stwierdzić, które certyfikaty i klucze należą do której aplikacji.
Kliknij Kontynuuj. Asystent certyfikatu poprosi o zapisanie żądania podpisania do pliku.
W programie Dostęp do pęku kluczy ustaw ponownie pęk kluczy „logowania” jako domyślny.
Utworzenie żądania podpisania wygenerowało parę kluczy. Przed przesłaniem żądania podpisania sprawdź, czy programistyczny pęk kluczy ma klucze. Ich nazwy będą takie same, jak nazwa zwyczajowa używana w żądaniu podpisania.
Prześlij żądanie podpisania certyfikatu (CSR)
Po utworzeniu wniosku o podpisanie certyfikatu prześlij go do Apple Developer Center. Apple utworzy certyfikat powiadomienia wypychanego na podstawie żądania podpisania.
Prześlij żądanie podpisania certyfikatu
Pobierz certyfikat utworzony przez firmę Apple na podstawie żądania podpisania certyfikatu
W aplikacji Dostęp do pęku kluczy z listy pęków kluczy wybierz programistyczny pęk kluczy
Z menu Plik wybierz Importuj elementy ...
Zaimportuj plik certyfikatu pobrany z Apple
Twój pęk kluczy programistycznych powinien teraz wyświetlać certyfikat wypychania z kluczem prywatnym w obszarze Moje certyfikaty w Dostępie do pęku kluczy:
W tym momencie należy utworzyć kopię zapasową pęku kluczy deweloperskich. Wiele zespołów przechowuje swoje certyfikaty push na bezpiecznych dyskach USB, zobowiązuje się do wewnętrznej kontroli wersji lub korzysta z rozwiązania do tworzenia kopii zapasowych, takiego jak Time Machine. Programistyczny pęk kluczy może być współużytkowany przez różnych członków zespołu, ponieważ nie zawiera żadnych osobistych poświadczeń do podpisywania kodu.
Pliki pęków kluczy znajdują się w ~/Library/Keychains.
Niektóre usługi push innych firm wymagają certyfikatów w formacie Privacy Enhanced Mail (PEM), podczas gdy inne wymagają standardów kryptografii klucza publicznego nr 12 (PKCS12 lub P12). Certyfikat pobrany od Apple może służyć do eksportowania certyfikatów w tych formatach - ale tylko wtedy, gdy zachowałeś klucz prywatny.
Przekonwertuj certyfikat na format PEM
W Dostęp do pęku kluczy wybierz utworzony wcześniej pęku kluczy programistycznych.
Wybierz certyfikat wypychania w sekcji Moje certyfikaty . Powinien być z nim klucz prywatny. ! [Pobierz certyfikat wypychania CER] (pęku kluczy / importowanie zakończone.png)
Z menu Plik wybierz Eksportuj elementy ...
W otwartym panelu zapisywania jako format pliku wybierz opcję Privacy Enhanced Mail (.pem) .
Sugerowałbym znacznie prostsze rozwiązanie. Po prostu użyj Certifire . Certifire to aplikacja dla systemu macOS, która w ciągu kilku sekund generuje certyfikaty powiadomień Apple Push Notification jednym kliknięciem.
Oto kroki:
1. Pobierz aplikację.
2. Zaloguj się, używając poświadczeń konta Apple Developer Account.
3. Wybierz identyfikator aplikacji
4. Kliknij przycisk „Generuj”
5. Gotowe!
Otrzymasz certyfikaty APN w formacie .pem, a także w formacie .p12. Co więcej, otrzymasz również połączone pliki .pem i .p12 (klucz + certyfikat)!
O wiele więcej, otrzymasz także wersje bez hasła dla wszystkich tych certyfikatów!
Na przykład signpem.shnazwij go i zapisz w folderze użytkownika ( /Users/<username>?). Po utworzeniu pliku zrób, chmod +x signpem.shaby był wykonywalny, a następnie możesz uruchomić:
Odpowiedzi:
Oto, co zrobiłem, From: blog.boxedice.com i „iPhone Advanced Projects”, rozdział 10 autorstwa Joe Pezzillo.
Z plikiem aps_developer_identity.cer w pęku kluczy:
apns-dev-cert.p12
plik w miejscu, do którego masz do niego dostęp. Nie ma potrzeby podawania hasła.Następne polecenie generuje certyfikat w terminalu Maca dla formatu PEM (Certyfikat bezpieczeństwa poczty wzmocnionego prywatności):
Na serwerze ustaw uprawnienia pliku tego niezaszyfrowanego klucza za pomocą chmod 400.
źródło
Faza rozwoju:
Krok 1: Utwórz certyfikat .pem z certyfikatu .p12
openssl pkcs12 -clcerts -nokeys -out apns-dev-cert.pem -in apns-dev-cert.p12
Krok 2: Utwórz klucz .pem z klucza .p12
openssl pkcs12 -nocerts -out apns-dev-key.pem -in apns-dev-key.p12
Krok 3 (opcjonalnie): Jeśli chcesz usunąć frazę hasła zadaną w drugim kroku
openssl rsa -in apns-dev-key.pem -out apns-dev-key-noenc.pem
Krok 4: Teraz musimy połączyć klucz .pem i certyfikat .pem, aby uzyskać programistyczny plik .pem potrzebny do powiadomień push w fazie opracowywania aplikacji.
Jeśli wykonałeś 3 krok, uruchom:
cat apns-dev-cert.pem apns-dev-key-noenc.pem > apns-dev.pem
Jeśli trzeci krok nie został wykonany, uruchom:
cat apns-dev-cert.pem apns-dev-key.pem > apns-dev.pem
Krok 5: Sprawdź ważność certyfikatu i łączność z APNS
Jeśli wykonałeś 3 krok, uruchom:
openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert apns-dev-cert.pem -key apns-dev-key-noenc.pem
Jeśli trzeci krok nie został wykonany, uruchom:
openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert apns-dev-cert.pem -key apns-dev-key.pem
Faza produkcji:
Krok 1: Utwórz certyfikat .pem z certyfikatu .p12
openssl pkcs12 -clcerts -nokeys -out apns-pro-cert.pem -in apns-pro-cert.p12
Krok 2: Utwórz klucz .pem z klucza .p12
openssl pkcs12 -nocerts -out apns-pro-key.pem -in apns-pro-key.p12
Krok 3 (opcjonalnie): Jeśli chcesz usunąć frazę hasła zadaną w drugim kroku
openssl rsa -in apns-pro-key.pem -out apns-pro-key-noenc.pem
Krok 4: Teraz musimy scalić plik klucza .pem i certyfikat .pem, aby uzyskać plik produkcyjny .pem potrzebny do powiadomień push w fazie produkcyjnej aplikacji.
Jeśli wykonałeś 3 krok, uruchom:
cat apns-pro-cert.pem apns-pro-key-noenc.pem > apns-pro.pem
Jeśli trzeci krok nie został wykonany, uruchom:
cat apns-pro-cert.pem apns-pro-key.pem > apns-pro.pem
Krok 5: Sprawdź ważność certyfikatu i łączność z APNS.
Jeśli wykonałeś 3 krok, uruchom:
openssl s_client -connect gateway.push.apple.com:2195 -cert apns-pro-cert.pem -key apns-pro-key-noenc.pem
Jeśli trzeci krok nie został wykonany, uruchom:
openssl s_client -connect gateway.push.apple.com:2195 -cert apns-pro-cert.pem -key apns-pro-key.pem
źródło
Kroki:
W ten sposób otrzymujesz trzy pliki:
PushChatKey.p12
)aps_development.cer
Przejdź do folderu, do którego pobrałeś pliki, w moim przypadku Pulpit:
$ cd ~/Desktop/
Przekonwertuj plik .cer na plik .pem:
$ openssl x509 -in aps_development.cer -inform der -out PushChatCert.pem
Przekonwertuj plik .p12 klucza prywatnego na plik .pem:
$ openssl pkcs12 -nocerts -out PushChatKey.pem -in PushChatKey.p12
Wprowadź hasło importu:
MAC verified OK Enter PEM pass phrase: Verifying - Enter PEM pass phrase:
Najpierw musisz wprowadzić hasło do pliku .p12, aby openssl mógł go odczytać. Następnie musisz wprowadzić nowe hasło, które zostanie użyte do zaszyfrowania pliku PEM. Ponownie w tym samouczku użyłem „pushchat” jako hasła PEM. Powinieneś wybrać coś bezpieczniejszego. Uwaga: jeśli nie wprowadzisz hasła PEM, openssl nie wyświetli komunikatu o błędzie, ale wygenerowany plik .pem nie będzie zawierał klucza prywatnego.
Na koniec połącz certyfikat i klucz w jednym pliku .pem:
$ cat PushChatCert.pem PushChatKey.pem > ck.pem
źródło
Uruchom aplikację Terminal i wprowadź następujące polecenie po monicie
źródło
- >> Samouczek firmy Apple << - to jedyny działający zestaw instrukcji, z jakim się spotkałem. Jest to proste i mogę potwierdzić, że działa doskonale zarówno na serwerze php linux, jak i serwerze php systemu Windows.
Możesz znaleźć ich 5-etapowy proces tworzenia pem na dole strony.
źródło
Możesz zajrzeć tutaj. Mam szczegółowy proces opisany za pomocą obrazów, od stworzenia certyfikatu, przez klucz aplikacji, profil aprowizacji, aż po PEM. http://docs.moengage.com/docs/apns-certificate-pem-file
źródło
Wysyłanie powiadomień push do aplikacji iOS wymaga utworzenia kluczy szyfrowania. W przeszłości był to uciążliwy proces wykorzystujący klucze SSL i certyfikaty. Każdy certyfikat SSL był specyficzny dla jednej aplikacji na iOS. W 2016 roku Apple wprowadził nowy mechanizm klucza uwierzytelniania, który jest bardziej niezawodny i łatwiejszy w użyciu. Nowe klucze uwierzytelniania są bardziej elastyczne, proste w utrzymaniu i mają zastosowanie do większej liczby użytkowników niż w aplikacji na iOS.
Mimo że od wprowadzenia kluczy uwierzytelniających minęło wiele lat, nie każda usługa je obsługuje. FireBase i Amazon Pinpoint obsługują klucze uwierzytelniania. Amazon SNS, Urban Airship, Twilio i LeanPlum tego nie robią. Wiele pakietów oprogramowania typu open source nie obsługuje jeszcze kluczy uwierzytelniających.
Aby utworzyć wymagany certyfikat SSL i wyeksportować go jako plik PEM zawierający klucze publiczne i prywatne:
Jeśli masz już skonfigurowany certyfikat SSL dla aplikacji w witrynie Apple Developer Center, możesz przejść od razu do sekcji Konwertuj certyfikat do formatu PEM. Pamiętaj, że napotkasz problemy, jeśli nie masz również klucza prywatnego wygenerowanego na komputerze Mac, na którym utworzono żądanie podpisania przesłane do Apple.
Czytaj dalej, aby dowiedzieć się, jak uniknąć utraty śledzenia tego klucza prywatnego.
Przejdź do certyfikatów, identyfikatorów i profili
Xcode nie kontroluje certyfikatów ani kluczy do powiadomień push. Aby utworzyć klucze i włączyć powiadomienia push dla aplikacji, musisz przejść do witryny Apple Developer Center. Sekcja Certyfikaty, identyfikatory i profile konta kontroluje identyfikatory aplikacji i certyfikaty.
Aby uzyskać dostęp do certyfikatów i profili, musisz mieć płatne członkostwo w programie Apple Developer Program lub należeć do zespołu, który to robi.
Utwórz identyfikator aplikacji
Aplikacje korzystające z powiadomień push nie mogą używać wieloznacznych identyfikatorów aplikacji ani profili obsługi administracyjnej. Każda aplikacja wymaga skonfigurowania rekordu App ID w portalu Apple Developer Center, aby włączyć powiadomienia push.
Włącz powiadomienia push dla identyfikatora aplikacji
Tworzenie certyfikatów SSL dla powiadomień push to proces składający się z kilku zadań. Każde zadanie ma kilka kroków. Wszystko to jest niezbędne do eksportu kluczy w formacie P12 lub PEM. Przejrzyj kroki przed kontynuowaniem.
Dodaj certyfikat SSL do identyfikatora aplikacji
Aby utworzyć certyfikat, musisz wysłać żądanie podpisania certyfikatu (CSR) na komputerze Mac i przesłać je do Apple.
Później, jeśli chcesz wyeksportować ten certyfikat jako plik pkcs12 (aka p12), będziesz musiał użyć pęku kluczy z tego samego komputera Mac . Po utworzeniu żądania podpisania Dostęp do pęku kluczy generuje zestaw kluczy w domyślnym pęku kluczy. Te klucze są niezbędne do pracy z certyfikatem, który Apple utworzy na podstawie żądania podpisania.
Utwórz pęku kluczy dla poświadczeń programistycznych
Utwórz żądanie podpisania certyfikatu (CSR)
Podczas tworzenia żądania podpisania certyfikatu Asystent certyfikatu generuje dwa klucze szyfrowania w domyślnym pęku kluczy. Ważne jest, aby programowanie pęku kluczy było domyślnym, aby klucze znajdowały się we właściwym pęku kluczy.
Utworzenie żądania podpisania wygenerowało parę kluczy. Przed przesłaniem żądania podpisania sprawdź, czy programistyczny pęk kluczy ma klucze. Ich nazwy będą takie same, jak nazwa zwyczajowa używana w żądaniu podpisania.
Prześlij żądanie podpisania certyfikatu (CSR)
Po utworzeniu wniosku o podpisanie certyfikatu prześlij go do Apple Developer Center. Apple utworzy certyfikat powiadomienia wypychanego na podstawie żądania podpisania.
Twój pęk kluczy programistycznych powinien teraz wyświetlać certyfikat wypychania z kluczem prywatnym w obszarze Moje certyfikaty w Dostępie do pęku kluczy:
W tym momencie należy utworzyć kopię zapasową pęku kluczy deweloperskich. Wiele zespołów przechowuje swoje certyfikaty push na bezpiecznych dyskach USB, zobowiązuje się do wewnętrznej kontroli wersji lub korzysta z rozwiązania do tworzenia kopii zapasowych, takiego jak Time Machine. Programistyczny pęk kluczy może być współużytkowany przez różnych członków zespołu, ponieważ nie zawiera żadnych osobistych poświadczeń do podpisywania kodu.
Niektóre usługi push innych firm wymagają certyfikatów w formacie Privacy Enhanced Mail (PEM), podczas gdy inne wymagają standardów kryptografii klucza publicznego nr 12 (PKCS12 lub P12). Certyfikat pobrany od Apple może służyć do eksportowania certyfikatów w tych formatach - ale tylko wtedy, gdy zachowałeś klucz prywatny.
Przekonwertuj certyfikat na format PEM
źródło
Sugerowałbym znacznie prostsze rozwiązanie. Po prostu użyj Certifire .
Certifire to aplikacja dla systemu macOS, która w ciągu kilku sekund generuje certyfikaty powiadomień Apple Push Notification jednym kliknięciem.
Oto kroki:
1. Pobierz aplikację.
2. Zaloguj się, używając poświadczeń konta Apple Developer Account.
3. Wybierz identyfikator aplikacji
4. Kliknij przycisk „Generuj”
5. Gotowe!
Otrzymasz certyfikaty APN w formacie .pem, a także w formacie .p12. Co więcej, otrzymasz również połączone pliki .pem i .p12 (klucz + certyfikat)!
O wiele więcej, otrzymasz także wersje bez hasła dla wszystkich tych certyfikatów!
źródło
Tak to zrobiłem na Windows 7, po zainstalowaniu OpenSSL (link prowadzi do instalatora Win32, wybierz najnowszą wersję, a nie wersję light).
Dzięki tej metodzie potrzebujesz tylko
.cer
pliku pobranego z Apple.utworzy to plik, do którego będziesz musiał dodać również swój klucz prywatny.
Otóż to.
źródło
Istnieje najłatwiejszy sposób na utworzenie pliku .Pem, jeśli masz już plik apns p12 w swoim dostępie do łańcucha kluczy.
Otwórz terminal i wprowadź poniższe polecenie:
Dla Devlopment openssl pkcs12 -in apns-div-cert.p12 -out apns-div-cert.pem -nodes -clcerts
Do produkcji openssl pkcs12 -in apns-dist-cert.p12 -out apns-dist-cert.pem -nodes -clcerts
Zmień nazwę pliku P12 na tę nazwę: apns-div-cert.p12 w przeciwnym razie zamiast tego musisz wprowadzić nazwę pliku. Dzięki!!
źródło
Nigdy nie pamiętam
openssl
polecenia potrzebnego do utworzenia.pem
pliku, więc zrobiłem ten skrypt bash, aby uprościć proces:Na przykład
signpem.sh
nazwij go i zapisz w folderze użytkownika (/Users/<username>
?). Po utworzeniu pliku zrób,chmod +x signpem.sh
aby był wykonywalny, a następnie możesz uruchomić:~/signpem myCertificate.p12 myCertificate.pem
I
myCertificate.pem
zostanie stworzony.źródło