Apple Certificate — o que é, quais são os tipos e como funciona

Autor: IT Sectr Publicado: 2026-04-16 Tempo de leitura: 9 min

Apple Certificate é um documento digital emitido pelo Apple Developer Portal para assinatura de código de aplicativos para iOS, iPadOS, macOS, tvOS e watchOS. De acordo com Apple Developer Support, 2026, os certificados fazem parte da infraestrutura de chave pública (PKI) e são necessários para confirmar a identidade do desenvolvedor. Neste artigo vamos abordar os tipos de certificados, o processo de criação e gerenciamento.

Pontos principais

  • Apple Certificate — um certificado digital que verifica a identidade do desenvolvedor ao assinar código
  • O certificado Development permite executar aplicativos em dispositivos físicos durante o desenvolvimento
  • O certificado Distribution é necessário para publicar na App Store ou distribuição Ad Hoc
  • Os certificados Push Notification são usados para assinar a conexão com APNs e entregar notificações
  • A chave privada do certificado é armazenada no Keychain do desenvolvedor e não deve ser compartilhada com terceiros

O que é um Apple Certificate

Apple Certificate é um certificado criptográfico no formato X.509 emitido pela autoridade de certificação da Apple (Apple Certificate Authority). Ele confirma que seu titular é um membro registrado do Apple Developer Program e tem o direito de assinar aplicativos para o ecossistema Apple. O certificado consiste em uma chave pública, metadados do proprietário e uma assinatura digital da Apple CA — qualquer pessoa pode verificar a autenticidade do certificado usando o certificado raiz da Apple integrado ao sistema operacional.

A arquitetura PKI da Apple inclui três níveis: o certificado raiz Apple Root CA, o certificado intermediário (Apple Worldwide Developer Relations CA) e o certificado do desenvolvedor. Apple Worldwide Developer Relations CA assina todos os certificados de desenvolvedores — se este certificado intermediário estiver ausente na cadeia de confiança, a assinatura de código é considerada inválida. Os certificados raiz da Apple são atualizados automaticamente através do mecanismo Apple Trust Store integrado no iOS e macOS.

Cada certificado tem um período de validade — de um a três anos, dependendo do tipo. Apple Developer Program notifica automaticamente o desenvolvedor 30 dias antes do vencimento do certificado por e-mail e notificações push. Após o vencimento, o certificado antigo não pode ser usado para assinar novas compilações — é necessário emitir um novo; no entanto, os aplicativos assinados com o certificado expirado continuam funcionando nos dispositivos dos usuários.

Cadeia de confiança da Apple

A cadeia de confiança garante que o certificado do desenvolvedor foi realmente emitido pela Apple. O iOS verifica: o certificado raiz Apple Root CA (integrado ao firmware), o certificado intermediário Apple Worldwide Developer Relations CA e o certificado do desenvolvedor. Se qualquer elemento da cadeia estiver ausente ou inválido, o iOS bloqueia a inicialização do aplicativo com um erro de assinatura de código. O macOS fornece o utilitário security para verificar a cadeia de confiança de qualquer certificado no chaveiro.

Como funcionam os certificados Apple

O processo de assinatura de código usando um Apple Certificate é baseado em criptografia assimétrica. A chave privada é armazenada no computador do desenvolvedor no Keychain, enquanto a chave pública é incluída no certificado e enviada ao Apple Developer Portal. Quando o Xcode assina um aplicativo, ele cria um resumo (hash) do arquivo binário e o criptografa com a chave privada — esta é a assinatura digital. O dispositivo descriptografa a assinatura usando a chave pública do certificado e a compara com o hash calculado.

A Apple usa o algoritmo ECDSA (Elliptic Curve Digital Signature Algorithm) com a curva P-256 para todos os certificados emitidos após 2021. Anteriormente era usado RSA-2048. A transição para ECDSA aumentou a velocidade de verificação de assinatura nos dispositivos e reduziu o tamanho da assinatura — isso é especialmente importante para aplicativos móveis, pois a verificação de assinatura é realizada a cada inicialização. De acordo com a Apple Security Engineering (2025), o ECDSA P-256 fornece um nível de segurança equivalente ao RSA-2048 com custos computacionais significativamente menores.

Para processos CI/CD, o certificado junto com a chave privada deve ser exportado para PKCS12 (.p12) e armazenado em um repositório seguro. GitHub Actions, Bitrise, Jenkins e outros sistemas CI suportam importação de certificados através de variáveis de ambiente ou segredos. Após a importação no agente CI, o certificado é temporariamente adicionado ao chaveiro, usado para assinar e removido. Fastlane Match automatiza esse processo sincronizando certificados entre desenvolvedores através de um repositório git criptografado.

Diferença entre certificados Development e Distribution

O certificado Development permite assinar aplicativos para execução em dispositivos físicos do desenvolvedor. Uma conta gratuita de Apple ID é suficiente para obtê-lo — o Xcode pode gerar um certificado Development automaticamente. O certificado Distribution é emitido apenas para contas pagas do Apple Developer Program ($99/ano) e é necessário para enviar um aplicativo para a App Store, distribuição Ad Hoc ou distribuição Enterprise. Uma conta pode ter vários certificados Distribution — por exemplo, um para cada aplicativo ou para diferentes equipes.

Tipos de Apple Certificate

O Apple Developer Portal oferece vários tipos de certificados, cada um projetado para um propósito específico. iOS App Development — certificado básico para assinar aplicativos durante o desenvolvimento. Apple Distribution — certificado principal para publicar na App Store. Mac Development e Mac Distribution — equivalentes para aplicativos macOS. Cada tipo de certificado requer uma solicitação (CSR) separada no Apple Developer Portal.

Uma categoria separada são os certificados para notificações push. O Apple Push Notification service (APNs) requer um certificado SSL separado ou o uso de tokens de autenticação (APNs Auth Key). Os certificados SSL APNs são emitidos separadamente para ambientes Development (Sandbox) e Production e estão vinculados a um App ID específico. APNs Auth Key é uma abordagem mais moderna: uma única chave (.p8) atende a todos os aplicativos da conta, simplificando o gerenciamento.

Tipo de certificadoPropósitoValidade
iOS App DevelopmentAssinatura para testes em dispositivos1 ano
Apple DistributionPublicação na App Store e Ad Hoc1 ano
Mac DevelopmentAssinatura de apps macOS para desenvolvimento1 ano
Mac DistributionPublicação na Mac App Store1 ano
APNs SSL (Sandbox)Notificações push em ambiente de teste1-3 anos
APNs SSL (Production)Notificações push em produção1-3 anos

Criação e gerenciamento de certificados

A criação de um Apple Certificate começa gerando uma solicitação de assinatura de certificado (CSR) através do Keychain Access no macOS. O Keychain Access cria um par de chaves: a chave privada permanece no chaveiro, enquanto a CSR é enviada ao Apple Developer Portal. Após a verificação de identidade, a Apple assina a CSR e emite um certificado pronto (.cer) que deve ser baixado e instalado com duplo clique.

Para gerenciar múltiplos projetos e equipes, a Apple oferece a capacidade de criar certificados para diferentes Team IDs. Um desenvolvedor pode ser membro de várias equipes (através do Apple Developer Program — App Store Connect), e certificados separados são emitidos para cada equipe. O Xcode alterna automaticamente os certificados com base na equipe selecionada nas configurações de Signing & Capabilities.

A revogação de um certificado é uma operação crítica: todos os aplicativos assinados com este certificado param de instalar em novos dispositivos (os já instalados continuam funcionando). O Apple Developer Portal permite revogar qualquer certificado na seção Certificates. Motivos de revogação: comprometimento da chave privada, saída do desenvolvedor da equipe, violação dos termos do Apple Developer Program. Após a revogação, um novo certificado deve ser emitido e todas as compilações ativas devem ser reassinadas.

Keychain e exportação de certificados

Keychain (chaveiro) é o armazenamento do sistema macOS para certificados, chaves privadas e senhas. Todos os certificados Apple e chaves privadas correspondentes são armazenados no chaveiro de login (login.keychain) do usuário. O Xcode acessa o Keychain ao assinar código, selecionando automaticamente o certificado apropriado com base no tipo de compilação. Para diagnosticar problemas de assinatura, é útil usar o utilitário integrado Keychain Access (pasta /Applications/Utilities).

A exportação de certificado para CI/CD é feita através do Keychain Access: selecione o certificado e a chave privada correspondente (eles devem estar expandidos em uma linha), clique com o botão direito e escolha Export. O formato é PKCS12 (.p12). Durante a exportação, o Keychain solicitará uma senha para proteger o arquivo — esta senha será necessária ao importar no servidor CI. Sem a chave privada, o certificado exportado é inútil para assinar — só pode ser usado para verificar código já assinado.

Importação de certificado em CI/CD

Exemplo de comando para importar um certificado no chaveiro do agente CI usando o utilitário security:

bash
# Criando um chaveiro temporário
security create-keychain -p "temp" build.keychain
security default-keychain -s build.keychain
security unlock-keychain -p "temp" build.keychain

# Importando o certificado de .p12
security import certificate.p12 -k build.keychain \
  -P "${P12_PASSWORD}" -T /usr/bin/codesign

# Configurando a política de assinatura
security set-key-partition-list -S apple: -s \
  -k "temp" build.keychain

O Security create-keychain cria um chaveiro temporário isolado do do usuário. Isso é importante para CI para evitar poluir o chaveiro do sistema do agente. A flag -T /usr/bin/codesign permite que o utilitário codesign acesse as chaves sem solicitar senha — caso contrário, a assinatura automática no pipeline seria interrompida por um diálogo. O comando set-key-partition-list é necessário para compatibilidade com os requisitos de assinatura de código do macOS em modo automatizado.

Problemas com certificados e soluções

O erro mais comum é “No signing certificate found” ao compilar no Xcode. Ocorre quando o Keychain não possui um certificado com chave privada correspondente ao tipo de compilação selecionado. Solução: verifique no Keychain Access se o certificado existe, baixe-o do Apple Developer Portal e instale. Se a chave privada foi perdida (computador antigo, reinstalação do sistema), é necessário revogar o certificado antigo e emitir um novo.

O erro “Valid signing certificate not found” em CI/CD ocorre se o agente não tiver os certificados intermediários da Apple instalados (Apple Worldwide Developer Relations CA). A Apple inclui certificados intermediários na cadeia ao baixar o certificado do desenvolvedor, mas eles podem estar ausentes ao exportar manualmente .p12. Solução — baixe os certificados intermediários do site da Apple Certificate Authority e instale-os no chaveiro do agente CI.

Um problema de certificado expirado se manifesta com o erro “This certificate has an invalid issuer” ao assinar. O Apple Developer Portal mostra o status de cada certificado e sua data de expiração. Se um aplicativo já foi publicado na App Store com um certificado expirado, ele continua funcionando — a App Store usa seu próprio certificado Apple para distribuição. No entanto, para enviar uma nova compilação, é necessário um certificado Distribution válido. O Fastlane inclui o comando cert para criar e renovar certificados automaticamente.

Perguntas frequentes

Pode-se usar um mesmo Apple Certificate para aplicativos iOS e macOS?

Não, para iOS e macOS são emitidos tipos diferentes de certificados — iOS App Development e Mac Development. O certificado Apple Distribution também é separado por plataforma. Ao criar um certificado no Apple Developer Portal, você deve especificar a plataforma alvo — não existe um certificado universal para todas as plataformas.

O que fazer se a chave privada do certificado for perdida?

Você precisa revogar o certificado antigo no Apple Developer Portal através de Certificates, Identifiers & Profiles. Em seguida, crie uma nova CSR através do Keychain Access e emita um novo certificado. Todos os aplicativos assinados com o certificado antigo precisarão ser reassinados e reenviados para a App Store se for necessário lançar uma atualização.

Quantos certificados uma conta Apple Developer pode ter?

Uma conta do Apple Developer Program permite no máximo dois certificados Distribution e um número ilimitado de certificados Development simultaneamente. Contas Enterprise têm limites separados. Se o limite de certificados Distribution for atingido, um dos certificados existentes deve ser revogado antes de criar um novo.

Como verificar a data de expiração de um certificado pela linha de comando?

Use o utilitário security: security find-identity -v -p basic lista todos os certificados no chaveiro com datas de expiração. Para um certificado específico, especifique seu hash SHA-1: security find-certificate -c “Developer” -p | openssl x509 -noout -enddate.

A alteração da conta Apple ID afeta os certificados existentes?

Sim, os certificados estão vinculados a uma conta Apple Developer específica (Team ID). Ao alterar a conta, os certificados antigos se tornam inválidos para o novo Team ID. O Xcode, ao alterar a conta em Accounts Preferences, solicita automaticamente a criação de novos certificados para a nova equipe.

Resumo

  • Apple Certificate — um certificado digital X.509 emitido pela Apple CA para confirmar a identidade do desenvolvedor ao assinar código
  • O certificado Development permite executar aplicativos em dispositivos físicos sem publicar na App Store
  • O certificado Distribution é necessário para enviar um aplicativo para a App Store e distribuição Ad Hoc
  • Certificados ou tokens APNs são necessários para entregar notificações push pelos servidores da Apple
  • A chave privada é armazenada no Keychain do desenvolvedor e não pode ser recuperada se perdida — é necessária revogação do certificado
  • A exportação PKCS12 é usada para transferir certificados entre computadores e sistemas CI/CD
  • A cadeia de confiança da Apple inclui certificados raiz, intermediário e do desenvolvedor — quebrar qualquer elo bloqueia a assinatura

Vamos desenvolver um aplicativo móvel chave na mão

A IT Sectr cria aplicativos para iOS e Android para startups e empresas desde 2017. Nós vamos aconselhá-lo e propor a melhor solução.

Discutir o projeto

Leia também