Não é possível importar PFX com CERTUTIL – “O conjunto de chaves não existe”

Não é possível importar PFX com CERTUTIL – “O conjunto de chaves não existe”

Temos um arquivo PFX que quando usado em qualquer outro sistema Windows (Server 2008 R2, 7, 8) é instalado perfeitamente. Em dois dos meus servidores, a importação falha assim:

CertUtil: -importPFX command FAILED: 0x80090016 (-2146893802) CertUtil: Keyset does not exist

Originalmente importamos este PFX usando o snap-in MMC, que parece funcionar, pois nenhum erro é relatado e o certificado mostra que ele possui uma chave privada quando aberto, mas com nosso aplicativo .NET estávamos recebendo um erro sobre não ter o Chave privada. Assumimos permissões de chave privada e adicionamos as permissões corretas para nosso pool de aplicativos. Isto não fez diferença. Importamos e excluímos várias vezes tentando consertar isso.

Percebemos agora que o tamanho dos arquivos adicionados, quando é realizada uma importação via MMC, para a C:\ProgramData\Microsoft\Crypto\RSA\MachineKeyspasta era de apenas 79kb nos servidores que não estão funcionando, quando normalmente aparecem como sendo 2kb nos sistemas onde funcionam.

Eu fiz verificações MD5 nos arquivos, então verifique se eles são iguais (eram) e também os copiei do sistema que não estava funcionando (o arquivo original copiado não é uma exportação) e que ainda funciona em outro lugar.

Por que isso estaria falhando?

Responder1

Cada pesquisa no Google que realizamos sempre retornava a mesma resposta básica, algo relacionado às permissões das Chaves Privadas... mas isso se baseava nas mensagens de erro que víamos.

Eventualmente, rastreamos o problema depois de usar o WinHttpCertCfg.exepara Process Monitorregistrar o acesso às pastas e ao registro.

Quando um de nossos desenvolvedores adicionou alguns certificados de teste, ele também alterou as permissões de segurança na C:\ProgramData\Microsoft\Crypto\RSA\MachineKeyspasta para que o IIS pudesse acessar a chave privada dos certificados importados, em vez de conceder permissões por meio do snap-in Certificados no MMC.

Ele apenas adicionou uma nova permissão e não alterou as existentes, mas isso de alguma forma interrompeu a importação de certificados. Quando as permissões adicionais foram removidas, ele começou a funcionar novamente.

Duvido muito que outras pessoas tenham o mesmo problema, mas achei que valeria a pena responder em vez de excluir ou encerrar a pergunta, pois um dia ela poderia ajudar outra pessoa.

informação relacionada