Como criar certificado P12 para distribuição iOS

103

Temos um aplicativo iOS cujo certificado de notificação push expirou e estamos tentando criar um novo. Criei novos certificados no portal de provisionamento (ios_developer.cer, ios_distribution.cer) e baixei-os. Eu estava seguindo as instruções aqui no Stack Overflow para convertê-lo em arquivos PEM e P12, mas estou preso. Quando tento converter o PEM em P12, ele quer uma chave privada de algum tipo e não sei onde consegui-la.

Também tentei carregá-los no Keychain Access. Eu tinha lido que você poderia exportá-los como P12 de lá, mas quando eu faço a importação, eles não aparecem em lugar nenhum.

RobG
fonte

Respostas:

127

Sua chave privada é gerada quando você cria a solicitação de assinatura no Keychain Access. Depois que o certificado for gerado e baixado, clique duas vezes nele para adicioná-lo ao Keychain Access, onde será combinado com a chave privada. Você pode então selecionar o certificado e abrir a seta para selecionar também a chave privada e exportá-los juntos como um arquivo .p12 do Keychain Access.

Picciano
fonte
12
Deixa pra lá; descobri isso. Cara, não admira que as pessoas tenham tantos problemas com isso ... é confuso!
RobG
14
Seria bom, mas a página 12 está acinzentada para mim :(
Rob
14
@Rob você precisa selecionar a chave privada e não o certificado inteiro. No Keychains no canto superior esquerdo, selecione "Login" e, na categoria, selecione "Certificados", você verá que o certificado tem uma seta para soltar agora, clique nele e a chave privada mostrará o botão direito e exportar o chapéu como .p12
tutts
6
Também não estou recebendo a opção suspensa. Cliquei duas vezes no certificado após o download e ele aparece nas chaves de login, mas não na chave privada. Eu só vejo em Certificados, não há nenhuma conexão entre a chave e o certificado que posso ver.
setherj
6
o mesmo aqui. Sem lista suspensa, p12 esmaecido
trainoasis
76

Arquivos .p12 são usados ​​para publicar o aplicativo na Apple App Store

A. Crie um arquivo CSR (.certSigningRequest)

  1. Abra o Acesso às Chaves em Utilitários
  2. Na barra de ferramentas de Acesso às Chaves, selecione Acesso às Chaves -> Preferência
  3. Na janela pop-up, selecione a guia Certificados
  4. Defina "Protocolo de status de certificado online" e "Lista de revogação de certificado" como "Desligado"
  5. Feche esta janela
  6. Agora, na barra de ferramentas, abra Keychain Access> Certificate Assistant> Request a Certificate From a Certificate Authority
  7. Digite o endereço de e-mail e o nome comum que você usou para se registrar no iOS Developer Program
  8. Mantenha o e-mail da CA em branco e selecione “Salvo no disco” e “Deixe-me especificar as informações do par de chaves”
  9. Clique em Continuar
  10. Escolha um nome de arquivo e destino em seu disco rígido
  11. Clique em Salvar
  12. Na janela seguinte, defina o valor “Tamanho da chave” para “2048 bits”
  13. Defina “Algoritmo” para “RSA”
  14. Clique em Continuar

Isso criará e salvará seu arquivo certSigningRequest (CSR) em seu disco rígido. Uma chave pública e privada também será criada no Keychain Access com o Common Name inserido.

B. Crie o arquivo ".cer" na conta de desenvolvedor iOS

  1. Faça login na conta de desenvolvedor da apple Clique em “Certificados, identificadores e perfis”
  2. Clique em “Provisioning Profiles”
  3. Na seção “Certificados”, clique em “Produção”
  4. Clique no botão “Adicionar” (+) no canto superior direito do painel principal
  5. Agora, escolha “App Store e Ad Hoc”
  6. Clique em Continuar
  7. Clique em “Escolher arquivo” e encontre o arquivo CSR que você criou no seu disco rígido
  8. Clique em Gerar
  9. Clique em Download para obter o arquivo

C. Instale .cer e gere o certificado .p12

  1. Encontre o arquivo .cer que você baixou e clique duas vezes
  2. Defina o menu suspenso Login como “login” e clique em Adicionar
  3. Abra o KeyChain Access e você encontrará o perfil criado na Etapa A
  4. Você pode expandir o perfil de “chave privada” (mostra o certificado que você adicionou)
  5. Selecione apenas esses dois itens (não a chave pública)
  6. Clique com o botão direito e clique em “Exportar 2 itens…” do pop-up
  7. Agora certifique-se de que o formato do arquivo é “.p12” e escolha o nome do arquivo e destino no seu disco rígido
  8. Clique em Salvar. Agora, você será solicitado a definir uma senha, mas mantenha ambas em branco
  9. Clique OK. Agora, você tem um arquivo .p12 em seu disco rígido

Observe que, se o problema ainda persistir, tente a etapa abaixo também:

Se o seu chaveiro estiver presente no iCloud, remova todo o conteúdo do chaveiro do iCloud e faça uma nova configuração no iCloud. Isso deve funcionar.

Jayprakash Dubey
fonte
Eu acidentalmente apaguei minha chave privada forma ke-chain. agora não consigo ver a chave privada abaixo do certificado. Eu tenho o arquivo CSR. Como instalar a chave privada novamente do CSR?
Avijit Nagare,
1
Foi muito difícil descobrir o processo da apple de obter um arquivo .p12 gerado, pois sou um cara do Windows Phone e este post realmente me ajudou a entendê-lo.
Mohammed Aamir K
1
Instruções muito úteis. Muito obrigado. Isso economizou muito tempo.
Alix
Por que definir 'Protocolo de status de certificado online' e o outro como desativado?
Nate
1
Eu resolvi esse problema. Para explicar o que eu fiz: Certifique-se de que suas chaves não apareçam no iCloud. Uma vez lá, existe o risco de obter o problema acima. Desinstalei tudo, fiz uma nova configuração sem usar os dados do meu iCloud e funcionou.
Nazar Medeiros
32

OK, problema resolvido! parece que quando clico duas vezes no certificado, ele o instala automaticamente nas chaves do SISTEMA - não sei por quê. Em vez disso, simplesmente arrasto e solto o certificado nas chaves do LOGIN e tudo está certo. Graças a este artigo -> Adicionando certificados às chaves e gerando formato de arquivo .p12 - alon rosenfeld 10 meses atrás

Abraham Lopez
fonte
1
Oh, uau. Passei horas tentando descobrir isso. Eu teria perdido mais uma semana se não fosse por essa resposta.
B Sete de
1
Muito obrigado. Perdi horas tentando descobrir isso.
SaltedBlowfish
1
Sim, horas perdidas de tempo, economizadas :)
Sahan
29

você não obterá a opção de expandir a menos que filtre escolhendo (Certificados) no canto inferior esquerdo do chaveiro

Albaiti
fonte
3

Para quem ainda tem esse problema, a solução para mim foi NÃO selecionar ambos e "Exportar 2 itens" (a chave e o certificado) - em vez disso, apenas exportar o certificado que JÁ inclui a chave. Em 2016, acho que essa é a maneira de fazer isso porque os uploads anteriores que funcionavam com a exportação de 2 itens não funcionam mais.

Jessicardo
fonte
Não consigo exportar apenas o certificado como p12 - tem certeza de que este é o caminho correto?
Cecil Rodriguez
O mesmo aqui. Isto é muito importante.
Gautam Jain
3

Para obter seu arquivo p12, siga este caminho ..

Passo 1. No XCode > Vá para Configurações do projeto > Geral > Assinatura section> Certificado de Assinatura

Veja qual certificado você está usando para este aplicativo específico, conforme mostrado na imagem abaixo

insira a descrição da imagem aqui

Etapa 2. Abra o Keychain > na seção Categoria inferior esquerda > Certificados

Procure o certificado e abra o filho clicando na seta para baixo conforme mostrado na imagem

insira a descrição da imagem aqui

Etapa 3. Clique com o botão direito e exporte como "Certificados.p12", fornecendo sua senha, por exemplo. "123456"

SwiftBoy
fonte
Não tenho aquela seta para expandir
Nazar Medeiros