Certificados e chaves APNs, explicados

Certificados e Chaves APNs, Explicados (.p8 vs .p12)

Toda integração de notificação push do iOS começa no mesmo ponto: provar ao serviço de Notificação Push da Apple que você tem permissão para enviar mensagens aos usuários do seu aplicativo. A Apple oferece duas maneiras de fazer isso — uma chave de autenticação APNs (.p8) ou um certificado APNs (.p12) — e a diferença entre eles é a diferença entre uma credencial que você configura uma vez e outra que você renovará anualmente, muitas vezes no pior momento possível.

Este guia explica como a autenticação APNs realmente funciona, quando usar uma chave .p8 em vez de um certificado .p12, e o punhado de erros que remontam a fazer isso incorretamente.

Como a autenticação APNs funciona

Quando seu provedor de push — PushEngage, ou seu próprio servidor — envia uma notificação, ele se conecta à API do provedor APNs da Apple e deve provar duas coisas: que está autorizado a enviar em seu nome e que tem permissão para direcionar o ID do pacote do seu aplicativo (o "tópico" em termos APNs). A chave .p8 e o certificado .p12 são apenas duas maneiras diferentes de provar isso.

O lado do dispositivo é separado. Seu aplicativo se registra com o APNs e recebe um token de dispositivo — essa parte nunca muda, independentemente de qual credencial seu provedor usa. A autenticação é puramente uma preocupação do servidor para a Apple, e é por isso que você pode alternar métodos sem tocar no binário do seu aplicativo.

A chave de autenticação .p8 (use esta)

O .p8 é uma chave de assinatura de token. Seu provedor a usa para gerar tokens JSON Web de curta duração que autenticam cada conexão com o APNs. Suas propriedades a tornam a escolha padrão para quase todos:

  • Nunca expira. Sem renovação anual, sem interrupção de push em uma data esquecida.
  • Uma chave cobre todos os aplicativos em sua conta de desenvolvedor. Lance um segundo aplicativo e a mesma chave o autenticará.
  • Funciona para ambientes de desenvolvimento e produção — sem pares de certificados sandbox/produção.
  • Viaja como três valores: o próprio arquivo .p8, o Key ID de 10 caracteres e seu Team ID.

Duas coisas para saber antes de criar uma. A Apple limita você a duas chaves APNs ativas por conta, portanto, organizações grandes devem tratar a criação de chaves como um ato deliberado, não um hábito por projeto. E o arquivo .p8 só pode ser baixado uma vez, no momento da criação — armazene-o em um local onde sua equipe possa encontrá-lo, porque a Apple não o fornecerá novamente.

O certificado .p12 (o caminho legado)

O .p12 é um certificado de cliente TLS, exportado do Acesso às Chaves após a Apple emiti-lo. Ele autentica a própria conexão em vez de assinar tokens. Ele ainda funciona, e algumas políticas de segurança corporativa ainda o exigem, mas suas restrições são o motivo pelo qual a Apple direciona novas integrações para a chave:

  • Expira a cada ano. A causa mais comum de falha súbita e total de push é um certificado APNs que expirou silenciosamente.
  • É limitado a um único app. Cada ID de bundle precisa de seu próprio certificado, e cada certificado precisa de seu próprio calendário de renovação.
  • Requer um Mac. A dança de exportação de solicitação de assinatura e Keychain não tem um caminho apenas pelo navegador.

Qual você deve usar?

Chave de autenticação .p8Certificado .p12
ExpiraNuncaA cada 12 meses
EscopoTodos os apps na contaUm ID de bundle
AmbientesDesenvolvimento + produçãoSeparado ou combinado por certificado
Criado a partir deQualquer navegadorMac com Acesso ao Keychain
Limite da conta2 chaves ativasPares por app
Use quandoQuase sempreA política exige certificados

A resposta honesta: use a chave .p8, a menos que uma política de segurança force o caminho do certificado. Menos partes móveis, nada para renovar, uma credencial para todo o seu portfólio.

Criando uma chave .p8 em três minutos

  1. Na sua conta de Desenvolvedor Apple, vá para Certificados, Identificadores e Perfis → Chaves e registre uma nova chave.
  2. Nomeie-a, ative a caixa de seleção Serviço de Notificações Push da Apple (APNs) e continue.
  3. Baixe o arquivo .p8 (lembre-se: uma chance), e anote o ID da Chave mostrado na tela de confirmação e o seu ID da Equipe na página de associação da conta.
  4. Faça o upload dos três valores para seu provedor de push. No PushEngage, esta é uma única tela nas configurações do seu app — o guia de credenciais APNs o percorre com capturas de tela.

Os erros que isso explica

Uma parcela surpreendente dos tickets de “push está quebrado” são problemas de credenciais disfarçados. Os suspeitos usuais:

  • BadDeviceToken — você está enviando o token de um app criado em sandbox para o ambiente de produção, ou vice-versa. Builds de depuração do Xcode se comunicam com o sandbox; builds do TestFlight e da App Store se comunicam com a produção.
  • TopicDisallowed — a credencial não cobre o ID do pacote que você está direcionando. Típico com certificados .p12 por app e uma configuração copiada e colada.
  • Falha súbita de entrega de 100% — um .p12 expirado. Verifique a data de validade do certificado antes de verificar qualquer outra coisa.
  • InvalidProviderToken — uma chave .p8 revogada, ou o par errado de Key ID/Team ID ao lado de um arquivo válido.

Onde isso se encaixa na sua integração

A credencial APNs é o primeiro passo de exatamente uma sessão de configuração. Faça o upload do .p8 para o PushEngage uma vez, e tudo o que vier depois — a integração com o SDK iOS 1.0, mídia rica através da sua extensão de notificação, campanhas acionadas e a própria entrega — funcionará com base nela sem mais cerimônias. Se você está vindo do Firebase, a mesma chave que você deu ao FCM funciona aqui, que é parte do motivo pelo qual migrar do FCM no iOS é um projeto de uma tarde.

Para a camada de estratégia que vem após a configuração, comece com o guia de marketing de push para aplicativos. E quando estiver pronto para enviar, o guia completo de configuração do iOS leva você da credencial à primeira campanha em menos de uma hora.

Adicionar um Comentário

Ficamos felizes que você escolheu deixar um comentário. Por favor, tenha em mente que todos os comentários são moderados de acordo com nossa política de privacidade, e todos os links são nofollow. NÃO use palavras-chave no campo do nome. Vamos ter uma conversa pessoal e significativa.

Engaje e Retenha Visitantes Depois Que Eles Saírem do Seu Site

Aumente o valor de cada visita ao site com Notificações Push que são difíceis de ignorar.

  • Plano Gratuito Para Sempre
  • Configuração Fácil
  • Suporte 5 Estrelas