Eu tenho dois sistemas Windows vinculados ao AWS CloudHSM v2 (o cavium HSM). Em um, gerei o CSR e aceitei/adicionei o certificado adquirido com esse CSR. Eu posso assinar e a chave privada é extraída corretamente do HSM por meio do Key Container.
A outra assinatura é o meu sistema de assinatura de produção e está funcionando corretamente com o certificado existente, mas quando tento adicionar o novo certificado, não Key Container
está configurado. Estou acostumado a precisar executar o processo de reparo, mas neste caso não tenho ID para fornecer o arquivo.
- Autenticar
"\Program Files\Amazon\CloudHSM\tools\set_cloudhsm_credentials.exe" --user REDACTED --password "..."
- Adicione o certificado
certutil -addstore my my-new-cert.crt
- Despejar os detalhes da loja
certutil -store my > cert_store_details.txt
Serial Number: REDACTED
Issuer: CN=DigiCert Trusted G4 Code Signing RSA4096 SHA384 2021 CA1, O=DigiCert, Inc., C=US
NotBefore: 1/25/2022 12:00 AM
NotAfter: 1/25/2023 11:59 PM
Subject: CN=REDACTED, C=US, SERIALNUMBER=REDACTED, OID.1.3.6.1.4.1.311.60.2.1.2=Delaware, OID.1.3.6.1.4.1.311.60.2.1.3=US, OID.2.5.4.15=Private Organization
Non-root Certificate
Cert Hash(sha1): REDACTED
No key provider information
Cannot find the certificate and private key for decryption.
Normalmente, eu criaria um repair.txt assim com Key Container
id entre o =
e &
no no Container
entanto, não tenho um desses, então estou sem sorte
[Properties]
11 = "" ; Add friendly name property
2 = "{text}" ; Add Key Provider Information property
_continue_="Container=&"
_continue_="Provider=Cavium Key Storage Provider&"
_continue_="Flags=0&"
_continue_="KeySpec=2"
Se eu apenas executar um reparo , será certutil -repairstore my "REDACTED"
solicitado um cartão inteligente. Ah, e esta máquina é um Windows Core 2016 (portanto, não há interface do usuário ou interface do usuário limitada).
Ok, aqui está a resposta do suporte da AWS - espero que eles a adicionem aos seus documentos
Determine os identificadores de arquivo do CloudHSM para chave privada e pública (você pode fazer isso despejando o módulo do certificado e usando as ferramentas hsm para procurar a chave. No entanto, relatei os identificadores antes de gerar meu CSR e depois para poder adicioná-los à minha documentação segura - então não precisei fazer isso
Criar um contêiner KSP
Isso deve resultar em algo semelhante a: "Representou 1 pares de chaves no Cavium Key Storage Provider".
Se você receber uma mensagem de erro "n3fips_password is not set", certifique-se de definir as credenciais de login para o HSM em seu sistema conforme detalhado em [4] abaixo.
"Cavius Key Storage Provider" pode não ser o nome dado ao seu contêiner de chaves. Esse nome é recuperado da saída gerada na primeira etapa.
Se o contêiner foi criado com sucesso, a saída deve ser semelhante à seguinte:
certutil verb -repairstore
para atualizar o número de série do certificado. Este comando seria algo semelhante ao seguinte:Você vai esperar algo assim
Se
Key Container = CNGRSAPriv-...d
mostrar o contêiner adequado, você saberá que o relacionamento cert KSP é bomSe você vir
Private key is NOT exportable
eEncryption test passed
souber que está usando os identificadores de arquivo corretos.Se você usar o signtool, precisará adicionar
/sm
para forçá-lo a usar o armazenamento da máquina e não o armazenamento do usuário, pois o processo acima gera o contêiner vinculado ao armazenamento da máquina. Não há opção em torno disso.