chave privada ausente no certificado de distribuição no chaveiro

171

Eu tenho o seguinte problema que não foi possível encontrar uma solução para qualquer lugar. Basicamente, temos uma conta de desenvolvedor da empresa (não corporativa) e, para enviar nosso aplicativo, solicitei ao líder da equipe que me enviasse o certificado de distribuição e criasse e me enviasse um perfil de provisionamento de distribuição.

Com o perfil de desenvolvedor, tudo funciona bem, mas quando instalei o certificado e o perfil de provisionamento, não vi o perfil de distribuição no Xcode e também não tenho uma chave privada sob o certificado dist no chaveiro.

Alguém sabe como resolver isso? Li em locais diferentes que precisarei revogar o certificado e criar um novo, mas não posso fazer isso, pois temos vários aplicativos na empresa e não posso revogá-lo para todos.

moshikafya
fonte
2
Às vezes, falta uma chave privada porque estamos tentando criar Certificados com .CSR que foram criados em qualquer outra máquina. Então, certifique-se, seu arquivo CSR também deve criado no mesmo computador em que você está tentando criar e instalar certificate..or você poderia usar .p12 de certificados para evitar esse problema
Mahipal Singh
2
No meu caso eu tenho dois certificados idênticos assinatura no meu chaveiro ... ele resolveu simplesmente apagar um deles ... apenas no caso ...
juanram0n

Respostas:

168

insira a descrição da imagem aquiAhh, esse é um problema comum, a solução é simples:

Quem já criou as credenciais do desenvolvedor, originalmente precisa ir ao chaveiro em seu computador e clicar com o botão direito do mouse em chaves privadas e públicas e exportar a chave para um arquivo. Depois, basta baixar o arquivo no seu computador e abri-lo, e ele será adicionado ao seu chaveiro.

Você precisa ter a chave privada (arquivo .pem) e o certificado para seus perfis de fornecimento.

Nirma
fonte
36
Para ser mais específico, é o arquivo .p12 que você precisa (exportado)
mkral 12/12
7
@Nirma O que fazer se não tivermos acesso ao computador a partir do qual as credenciais do desenvolvedor foram criadas originalmente.
Nishad Arora
@NishadArora Você precisará criar uma nova chave para usar. Não há como usá-lo sem a chave privada. AFAIK
Joshua Pinter
2
@Nirma Como criar New one
Muju
Se isso ajuda alguém, depois de ter o certificado público e a chave privada instalados (verificados no Keychain Access e ele estava sendo exibido), também tive que reiniciar o Xcode para que ele pegasse a chave privada. Usando o Xcode 11.6 no OSX 10.15.5.
NHol
70

Contanto que você ainda tenha acesso ao mac que foi usado para gerar o certificado de distribuição original, é muito simples.

Basta usar o aplicativo Keychain Access desse mac para exportar o certificado e a chave privada. Selecione ambos usando shift ou command e clique com o botão direito do mouse para exportar para um arquivo .p12.

Anexou uma captura de tela para deixar bem claro.

No seu mac, importe esse arquivo .p12 e você estará pronto (apenas verifique se você tem um perfil de aprovisionamento válido).

Basta escolher exportar

eladleb
fonte
55

Para adicionar respostas às outras pessoas, se você não tiver mais acesso a essa chave privada, é bastante simples voltar a funcionar:

  1. revogar seu certificado ativo no portal de provisionamento
  2. crie um novo certificado de desenvolvedor (acesso ao chaveiro /.../ request for csr ... etc.)
  3. faça o download e instale um novo certificado
  4. crie um novo perfil de provisionamento para o ID do aplicativo existente (no portal de provisionamento)
  5. faça o download e instale um novo perfil de provisionamento e, na construção, as configurações definem as identidades de assinatura de código apropriadas
mkral
fonte
13
Aqui na minha empresa sempre há uma bagunça, ninguém sabe em qual computador foi criado um determinado certificado. É apenas melhor para revogar e recriar
user2387149
1
@ user2387149 Estou aqui seis anos depois para sugerir o CI / CD para fazer esse tipo de coisa e esquecer a distribuição via xCode.
Edgar Salazar
se eu já baixei um certificado de distribuição, revoguei e solicite novamente. devo remover o certificado de distribuição antigo?
kafinsalim 13/07
14

Exclua o existente do KeyChain, obtenha e adicione o arquivo .p12 ao seu mac de onde o certificado foi criado.

Para obter .p12 do Mac de origem, vá para KeyChain, expanda o certificado, selecione ambos e exporte 2 itens. Isso salvará o arquivo .p12 no seu local:

insira a descrição da imagem aqui

Jamshed Alam
fonte
8

No meu caso, perdi todas as chaves privadas do meu chaveiro, novas foram importadas corretamente, mas também não mostram a chave privada. A única coisa que ajudou foi a geração de novos CertificateSigningRequest

JakubKnejzlik
fonte
6

Depois de alterar um Mac que não é o de origem que criou o certificado de distribuição, você perderá a chave privada. Basta excluir o certificado de origem e recriar um novo, que funcione para mim ~

Michael Yang
fonte
5

Quando tento fazer o upload da versão do iOS para testar o voo, aparece um erro.

"Missing privacy key".

insira a descrição da imagem aqui

Apenas 2 etapas para corrigir esse erro.

  1. Remova o certificado antigo do developer.apple.com
  2. Crie um novo certificado no Xcode ou developer.apple.com

Meu problema foi resolvido (estou usando o Xcode 9.4.1).

Por favor, verifique, o Xcode criou um novo certificado.

insira a descrição da imagem aqui

Vivek
fonte
5

Para quem tem medo de recriar o certificado de distribuição da AppStore, a documentação da Apple diz:

Importante: A recriação de seus certificados de desenvolvimento ou distribuição não afeta os aplicativos que você enviou à App Store nem sua capacidade de atualizá-los.

Mas isso afeta os aplicativos do ecossistema Apple Developer Enterprise .

Ramis
fonte
4
isso acontece se você tiver uma conta corporativa!
MobileMon
Por "sistema de ecossistema corporativo" .... Por ex. você está falando se trabalha em uma empresa grande e 100 desenvolvedores têm essa chave privada para esse aplicativo específico?
Petrosmm 17/01/19
2

No menu> Visual Studio (mac)> Preferências> Publicação> Contas de desenvolvedor da Apple> [Selecione seu ID da apple]> Exibir detalhes> Criar certificado

Para excluir certificados não utilizados / inválidos, acesse o site: https://developer.apple.com/account/resources/certificates/list

excluir qualquer certificado indesejado lá

Em seguida, crie o ID do aplicativo (identificadores), acesse o site:
https://developer.apple.com/account/resources/identifiers/list

Em seguida, acesse o site para criar perfis de provisionamento:
https://developer.apple.com/account/resources/profiles/add

use o certificado para vincular ao seu ID do aplicativo.

Em seguida, faça o download dos perfis:
No seu mac> No Menu> Visual Studio (mac)> Preferências> Publicação> Contas de desenvolvedor da Apple> [Selecione o ID da sua apple]> Ver detalhes> Download de todos os perfis

mjb
fonte
1

Eu acessei esse certificado no site do desenvolvedor da apple e, depois de baixado, abri-o. Da mesma forma, ao abrir, recebi uma pequena janela perguntando se queria adicionar o certificado ao chaveiro. Basta tocar em "adicionar" e o erro "chave privada ausente" desapareceu.

ISS
fonte
1

Entrei nessa situação ("Chave privada ausente".) Depois que o Xcode falhou ao criar um novo certificado de distribuição - ocorreu um erro desconhecido.

Então, lutei para obter a chave privada ou para gerar um novo certificado. No gerenciador de certificados do Xcode, obtive erros estranhos como "A senha inserida está incorreta". Mas nem sequer me pediu uma senha.

O que me ajudou foi:

  1. Revogue todos os certificados de distribuição que não funcionam em developer.apple.com
  2. Reinicie meu Mac

Depois disso, o Xcode conseguiu criar um novo certificado de distribuição e nenhuma chave privada estava faltando.

Lição aprendida: reinicie o seu Mac tanto quanto o Windows;)

Štěpán Havránek
fonte
0

Verifique se você está usando o Login ou não para adicionar os certificados. Se você estiver verificando o Sistema no canto superior esquerdo, não poderemos vê-lo.

Então arraste e solte o .cer no login e verifique se você consegue a chave privada ou não.

Priyanka
fonte
0

Só para esclarecer isso.

Depois que eu apaguei meu certificado p12 do Keychain. Fiz o download do meu próprio certificado novamente do portal de desenvolvedores da Apple.

Só consegui baixar o certificado. Mas para assinar, você também precisa da chave privada. Então você:

  • exporte a chave privada e o certificado do Keychain para obtê-lo.

  • Carregar uma solicitação de assinatura de certificado e gerar novos certificados

Esse certificado por si só não tem valor para fins de assinatura. Meu palpite é que a chave privada é criada pelo chaveiro no momento em que você 'solicita um certificado de uma autoridade de certificação', mas não é exibida até você adicionar o seu certificado de subordinação.

Mel
fonte