Gerar arquivo .pem usado para configurar o Apple Push Notifications


290

Tentei e tentei gerar um arquivo .pem, sempre gerando certificados da conta do cliente e depois gerando o arquivo .pem usando o terminal, mas não adianta. Alguém pode dar um procedimento passo a passo?

Respostas:


936

Para ativar o Push Notification para o seu aplicativo iOS, você precisará criar e fazer upload do Certificado de Notificação por Push da Apple (arquivo .pem) para nós, para que possamos conectar-se ao Apple Push Server em seu nome.

( Versão atualizada com capturas de tela atualizadas aqui )

Etapa 1: faça login no iOS Provisioning Portal, clique em "Certificados" na barra de navegação esquerda. Depois, clique no botão "+".

insira a descrição da imagem aqui

Etapa 2: selecione a opção SSL (Production) do serviço Apple Push Notification na seção Distribution e clique no botão "Continue".

insira a descrição da imagem aqui

Etapa 3: selecione o ID do aplicativo que você deseja usar para o seu aplicativo BYO (Como criar um ID do aplicativo) e clique em "Continuar" para ir para a próxima etapa.

insira a descrição da imagem aqui

Etapa 4: Siga as etapas "Sobre como criar uma solicitação de assinatura de certificado (CSR)" para criar uma solicitação de assinatura de certificado.

insira a descrição da imagem aqui

Para complementar as instruções fornecidas pela Apple. Aqui estão algumas capturas de tela adicionais para ajudá-lo a concluir as etapas necessárias:

Etapa 4 Captura de tela complementar 1: Navegue até o Assistente de certificado de acesso ao chaveiro no seu Mac.

insira a descrição da imagem aqui

Etapa 4 Captura de tela suplementar 2: Preencha as informações do certificado. Clique em Continue.

insira a descrição da imagem aqui

Etapa 5: faça o upload do arquivo ".certSigningRequest" gerado na etapa 4 e clique no botão "Gerar".

insira a descrição da imagem aqui

Etapa 6: clique em "Concluído" para concluir o registro, a página do portal de provisionamento do iOS será atualizada com a seguinte tela:

insira a descrição da imagem aqui

Em seguida, clique no botão "Download" para baixar o certificado (arquivo .cer) que você criou agora. - Clique duas vezes no arquivo baixado para instalar o certificado no Keychain Access no seu Mac.

Etapa 7: no seu Mac, vá para "Porta-chaves", procure o certificado que você acabou de instalar. Se não tiver certeza de qual certificado é o correto, ele deve começar com "Apple Production IOS Push Services:" seguido pelo ID do pacote do seu aplicativo.

insira a descrição da imagem aqui

Etapa 8: expanda o certificado, você verá a chave privada com o seu nome ou o nome da sua empresa. Selecione os dois itens usando a tecla "Selecionar" no teclado, clique com o botão direito do mouse (ou clique com o botão direito do mouse se você usar um único botão), escolha "Exportar 2 itens", como abaixo:

insira a descrição da imagem aqui

Em seguida, salve o arquivo p12 com o nome "pushcert.p12" na área de trabalho - agora você será solicitado a digitar uma senha para protegê-la. Clique em Enter para pular a senha ou digite a senha desejada.

Etapa 9: Agora a parte mais difícil - abra "Terminal" no seu Mac e execute os seguintes comandos:

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

Etapa 10: Remova o pushcert.p12 da área de trabalho para evitar carregamentos incorretos na área Build Your Own. Abra "Terminal" no seu Mac e execute os seguintes comandos:

cd
cd Desktop
rm pushcert.p12

Etapa 11 - NOVA ATUALIZAÇÃO DA AWS: crie uma nova pushcert.p12para enviar ao AWS SNS. Clique duas vezes no novo pushcert.peme exporte apenas o que estiver em destaque no verde.

insira a descrição da imagem aqui Crédito: nova atualização da AWS

Agora você criou com êxito um Certificado de notificação por push da Apple (arquivo .p12)! Você precisará fazer o upload desse arquivo para a nossa área Build Your Own mais tarde. :)


11
Agora você pode exportar diretamente do Keychain para um arquivo PEM (etapas 8 a 10).
Kyle Clegg

10
@KyleClegg: como?
Eugene

3
O que é a área "Crie seu próprio" e por que precisamos fazer upload do arquivo pem para ele?
Rafi

1
Por que todas essas respostas na Internet ignoram a verdadeira pergunta contínua sobre o que é o 'Build Your Own'? Onde você carrega este PEM se estiver usando o Xcode?
RobertyBob

1
No meu caso, eu precisava criar dois arquivos pem do p12 cert. Apenas exporte o arquivo cert e key, respectivamente, no acesso ao keychain, em vez de exportar 2 itens juntos. Mas essa resposta é definitivamente incrível!
24518 wei

79

Hoje há uma solução muito mais simples - pem . Essa ferramenta facilita muito a vida.

Por exemplo, para gerar ou renovar seu certificado de notificação por push, digite:

fastlane pem 

e é feito em menos de um minuto. Caso você precise de um certificado sandbox, digite:

fastlane pem --development

E isso é bonito.


9
E não há apenas PEM. Toda a ferramenta fastlane é absolutamente brilhante
Benjamin

Também está disponível para sistemas que não são da Apple?
precisa saber é o seguinte

@KrauseFx, se eu o gero via pem, como faço para mostrá-lo aqui: developer.apple.com/account/ios/certificate ? Acho isso bastante útil para ver a última data de validade, etc? Isso é algo que acontece automaticamente?
IonicBurger

1
@Nikola Nenhuma ação no iTunes Connect necessário, você pode usar esse arquivo pem imediatamente
KrauseFx

1
@ Mikejd não precisamos especificar qual p12 deve ser usado para pem?
Maulik

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

Isto funciona? Criei um arquivo PEM no Windows 10 usando esse método, mas recebi a mensagem "Não foi possível conectar-se a 'ssl: \ / \ / gateway.sandbox.push.apple.com" quando utilizei o pem gerado para enviar notificações por push.
Arivan Bastos

3

A Apple alterou o nome do certificado emitido. Agora você pode usar o mesmo certificado para desenvolvimento e produção. Enquanto você ainda pode solicitar um certificado somente de desenvolvimento, não é mais possível solicitar um certificado somente de produção.

veja abaixo screnshot


1

é muito simples depois de exportar o Cert.p12 e o key.p12. Encontre o comando abaixo para o arquivo .pem 'apns' de geração.

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

O comando acima é útil para Sandbox e Production.


1

De acordo com a solução de problemas de certificado push

O certificado SSL disponível na sua conta do Apple Developer Program contém uma chave pública, mas não uma chave privada. A chave privada existe apenas no Mac que criou a Solicitação de assinatura de certificado carregada na Apple. As chaves pública e privada são necessárias para exportar o arquivo PEM (Privacy Enhanced Mail).

Provavelmente, o motivo pelo qual você não pode exportar um PEM ativo do certificado fornecido pelo cliente é que você não possui a chave privada. O certificado contém a chave pública, enquanto a chave privada provavelmente só existe no Mac que criou o CSR original.

Você também pode:

  1. Tente obter a chave privada do Mac que criou originalmente o CSR. A exportação do PEM pode ser feita a partir desse Mac ou você pode copiar a chave privada para outro Mac.

ou

  1. Crie um novo CSR, novo certificado SSL e, desta vez, faça backup da chave privada.

0

Obrigado! para todas as respostas acima. Espero que você tenha um arquivo .p12. Agora, abra a gravação do terminal seguindo o comando. Defina o terminal como o caminho em que você colocou o arquivo .12.

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

Agora seu arquivo .pem é gerado.

Verificar arquivo .pem Primeiro, abra o .pem em um editor de texto para visualizar seu conteúdo. O conteúdo do certificado deve estar no formato conforme mostrado abaixo. Verifique se o arquivo pem contém o conteúdo do certificado (de BEGIN CERTIFICATE para END CERTIFICATE) e também a chave privada de certificado (de BEGIN PRIVATE KEY to 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-----

Além disso, você verifica a validade do certificado acessando o Decodificador de Certificados SSLShopper e cola o Conteúdo do Certificado (de BEGIN CERTIFICATE a END CERTIFICATE) para obter todas as informações sobre o certificado, como mostrado abaixo:

insira a descrição da imagem aqui

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.