Erro ao tentar obter um certificado: O item especificado não foi encontrado nas chaves

110

Eu estava tendo problemas com a assinatura de códigos em meus aplicativos, então excluí todas as chaves do chaveiro. Em seguida, fui para Assistente de certificado => Solicitar um certificado de uma autoridade de certificação (para criar CSR para um novo certificado).

Então, insira meu endereço de e-mail e recebo:

O item especificado não foi encontrado no chaveiro.

O que estou fazendo de errado?

PS Quando estou tentando criar uma autoridade de certificação , recebo o mesmo erro.

Sergey
fonte
1
Estou recebendo o mesmo erro. Você pode elaborar sua resposta ou alguém que saiba como fazê-lo
Iducool
9
Reiniciar o KeyChain Access funcionou para mim :)
Mohit Padalia
1
Para aqueles que reutilizam uma chave privada para um segundo propósito de assinatura (por exemplo, installer+ application), consulte as etapas manuais de @toland-hon abaixo, que usam OpenSSL na linha de comando para contornar o Keychain Accessaplicativo com erros . As etapas abaixo que direcionam os usuários para a Certificateseção de Keychain Accessainda NÃO funcionam ao reutilizar uma chave privada para uma finalidade secundária. O CSR manual via opensslé uma solução alternativa viável.
tresf

Respostas:

300

Eu resolvi isso. Certifique-se de estar na seção "Certificados" e de selecionar "Autoridade de Certificação de Relações com o Desenvolvedor Mundial da Apple" antes de solicitar um certificado.

Francesco
fonte
7
Você é um herói. Eu estava puxando meu cabelo quando todas as outras respostas não resolveram o problema.
BFeher
23
Oh meu Deus Apple WTF? Obrigada John!
MattD
2
Isso é uma loucura. :(: P what the falooda ??? Sério, precisa haver algum alerta ou mensagem amigável.
Adil Soomro
2
Não considerei essa resposta porque achei que era uma loucura. mas realmente funciona. existem algumas partes soltas do ecossistema da maçã que são simplesmente insanas :)
alex de
2
Isso resolveu para mim. Ter minha chave privada antiga selecionada não funcionou, nem mesmo não ter uma chave selecionada. Que obscuro ...
zai chang
46

O Acesso às Chaves não permitirá que você Solicite um Certificado de uma Autoridade de Certificação com " identidade " ... a menos que você tenha a chave privada e a pública para a identidade em suas chaves. Eu encontrei isso quando eu tinha apenas a chave privada e não a chave pública correspondente.

Você pode criar a chave pública a partir da chave privada e importá-la para suas chaves usando o procedimento descrito em Perdi minha chave pública. Posso recuperá-lo de uma chave privada?

Depois de importar a chave pública, consegui usar o comando Solicitar um certificado de uma autoridade de certificação com " identidade " ... sem acionar o erro O item especificado não foi encontrado no erro do keychain .

Gene Goykhman
fonte
Você está certo, como o certificado pode ser criado sem a chave pública :)
onmyway133
29

Vá para a seção " Certificados " e selecione " Autoridade de Certificação Mundial de Relações com Desenvolvedores da Apple " antes de solicitar um certificado.

insira a descrição da imagem aqui

Atereshkov
fonte
21

Você está (talvez acidentalmente) pedindo ao Keychain Access para gerar uma Solicitação de Assinatura de Certificado usando uma chave existente . Se uma chave for selecionada quando você entrar no menu Acesso às Chaves - Assistente de Certificado , as opções apresentadas serão para essa chave selecionada.

Escolha um item que não seja uma chave em suas chaves (como uma senha salva) e vá para Acesso às Chaves - Assistente de Certificado novamente para gerar o CSR normalmente.

Phil Calvin
fonte
Parece que o OS X agora tem como padrão o primeiro item selecionado agora. Se você apenas escolher um chaveiro diferente (ou seja, Sistema) ao gerá-lo, o problema deve ser corrigido.
James Parker de
Puta merda, eu nunca teria convidado isso. Fale sobre design de IU ruim ...
d512
9

Até eu estava tendo esse problema. Resolvi isso selecionando em All Itemsvez de Keysno Categoriespainel e tentando criar o certificado.

Experimente, com certeza funcionará.

naddy19
fonte
Melhor reiniciar
knight2016
7

Isso estava acontecendo comigo, notei que a opção de menu para criar a solicitação de certificado mudou de

Solicite um certificado de uma autoridade de certificação ...

para

Solicite um certificado de uma autoridade de certificação com "Meu nome" ...

Verifique esta opção do menu

Estou em um domínio no trabalho, então me desconectei, entrei e saí como outro usuário e depois entrei novamente. Depois disso, o menu apareceu como esperado e este erro foi embora

Damo
fonte
4
Este é um recurso do Keychain Access. Se você tiver uma chave selecionada ao acessar esse menu, ele oferecerá o uso da chave para criar a solicitação de assinatura de certificado. (Nesse caso, as opções são iguais às de clicar com o botão direito do mouse em uma chave.) O logout desmarca a chave.
Phil Calvin
Você não precisa fazer logout e depois fazer o login. basta sair do chaveiro e abri-lo novamente agora sem selecionar nenhuma entrada na lista e ir ao menu para solicitar
M.Shuaib Imran
7

Meu objetivo era criar um CSR (solicitação de assinatura de certificado) usando minha chave privada existente para enviar à Apple para gerar um novo certificado de distribuição do iPhone. Verifiquei se Certificados era a categoria selecionada à esquerda. Tentei clicar com o botão direito em minha chave privada e clicar em Solicitar um certificado de uma autoridade de certificação com chave privada importada e obtive o seguinte erro ao tentar salvá-lo.

O item especificado não foi encontrado no chaveiro.

Também recebi o mesmo erro ao acessar o menu de arquivo: Keychain Access > Certificate Assistant

O que obtive de outras fontes da Internet é que o Keychain Access NÃO permite que você crie um novo CSR se você importou a chave privada, apenas se você criou a chave localmente a partir da ferramenta.

O que acabei fazendo, em vez disso, foi exportar a chave privada e usar o openssl para gerar o novo CSR, que a Apple aceitou e agora faz referência à nova chave privada importada.

Exportando a chave privada

  1. Clique com o botão direito na chave privada
  2. Exportar
  3. Certifique-se de que o formato de arquivo p12 esteja selecionado
  4. Salve 
  5. Digite uma senha (opcional)
  6. Permitir acesso para exportar chave
  7. Abra o Terminal e vá para o diretório exportado
  8. Extrair chave do contêiner p12

Tenha cuidado, pois a chave privada .pem não é mais protegida por senha)

$ openssl pkcs12 -in Certificates.p12 -out Certificates.pem -nodes
Enter Import Password: ********************
MAC verified OK

Criação de novo CSR com chave privada exportada

$ openssl req -out Certificates.csr -key Certificates.pem -new
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:.
State or Province Name (full name) [Some-State]:.
Locality Name (eg, city) []:.
Organization Name (eg, company) [Internet Widgits Pty Ltd]:.
Organizational Unit Name (eg, section) []:.
Common Name (e.g. server FQDN or YOUR name) []:John Doe Dev Key
Email Address []:thon@example.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Algumas coisas a serem observadas:

  • Entrar . quando você quiser que o campo fique em branco, ou o padrão incluirá o que estiver entre colchetes [].
  • Nome comum (CN) deve ser o nome de sua chave privada (por exemplo, John Doe Dev Key)
  • O endereço de e-mail deve ser o seu endereço de e-mail (por exemplo, [email protected])
  • Todo o resto deve estar em branco

Verifique o seu CSR

$ openssl req -noout -text -in Certificates.csr
Certificate Request:
    Data:
        Version: 0 (0x0)
        Subject: CN=John Doe Dev Key/emailAddress=thon@example.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
            RSA Public Key: (2048 bit)
                Modulus (2048 bit):
                    
                Exponent: 65537 (0x10001)
        Attributes:
            a0:00
    Signature Algorithm: sha1WithRSAEncryption
        

Você deve se preocupar com o assunto linha e verifique se está correto.

Agora tudo o que você precisa fazer é enviá-lo para a Apple, aguardar a geração do certificado e instalá-lo. Depois de importar o certificado recém-gerado, você verá que ele fará referência ao certificado antigo que você exportou acima.

Toland Hon
fonte
O mesmo problema. Desejava manter a mesma chave privada (ou seja, originalmente usada para, developerID_installer.cermas deseja reutilizá-la developerID_application.cer). As instruções da Apple são ruins porque obrigam você a usar o buggy Keychain Accessou pior, o XCode. Eu tropecei nesta solução acima um tanto inadvertidamente. Votar no seu porque é exatamente o que acabei fazendo.
tresf
4

eu tenho o mesmo problema. Posso criar CSR e não criá-lo e estou obtendo o mesmo erro.

então eu posso pesquisar e encontrar a solução, mas não resolver.

algum tempo eu posso resolver isso.

meu acesso às chaves através da primeira caixa de tempo CSR.so meu acesso às chaves é bloqueado.

abrir> acesso das chaves> parte superior da tela de acesso das chaves "Clique para desbloquear as chaves do sistema"

Clique nele e desbloqueie o keychain do sistema, crie o arquivo CSR e, em seguida, não obtenha este erro.

Sanjay Damor
fonte
2

Escolher a chave privada no chaveiro irá ocorrer o problema. "o item especificado não pôde ser encontrado nas chaves" Enquanto você escolhe a chave pública, resolva-o. "Sua solicitação de certificado foi criada no disco."

Zgpeace
fonte
1

Ok, o nome que mostra exibe o item que você destacou na janela principal do Keychain (se você selecionar um item diferente aqui, também verá a alteração do item de menu com ele). Se você for à seção de categoria à esquerda e selecionar meus certificados, por exemplo, e voltar ao item de menu do assistente de certificado, parece / age como você está acostumado. Espero que isto ajude!

Cedrick
fonte
1

Depois de revogar todos os certificados que eu tinha, descobri que o problema era com meu yubikey . Isso estava atrapalhando a assinatura do aplicativo. Depois de removê-lo, o problema foi resolvido.

Este tópico do fórum me ajudou: https://forums.developer.apple.com/thread/106938

Adriana Pineda
fonte
Obrigado! Este foi o meu problema também. Esse pode não ser o problema para a maioria das pessoas, mas qualquer um com um Yubikey deve tentar retirá-lo e reconstruí-lo.
Philihp Busby
0

Se você selecionou qualquer chave privada no chaveiro ao gerar um novo CSR, ele irá avisá-lo com referência a essa chave. Apenas certifique-se de ter selecionado qualquer item de chave não privada para gerar um novo CSR que será útil para criar um novo.

Por exemplo, mantenha selecionado na ferramenta de chaveiro "Chave Pública" ou qualquer certificado existente que não tenha uma chave privada alinhada a ele. Agora siga o fluxo "Solicitar certificado da autoridade de certificação".

Ameer
fonte
-14

Resolvi-o! Tive que alterar o "Certificado do usuário" para "Assinatura de código".

Sergey
fonte
O que você quer dizer com alterar "Certificado do usuário" para "Assinatura de código"?
user500
Sim, por favor, também estou com o mesmo problema, o que você quer dizer com "assinatura de código?
Cadê