Você pode verificar a integridade de um certificado SSL e de um par de chaves privadas com o utilitário
utilitário OpenSSL
e suas linhas de comando.
O processo consiste em quatro etapas:
- Verifique se a chave privada não foi alterada.
- Verificar a correspondência do valor do módulo com a chave privada e o par de certificados SSL
- Executar com êxito a criptografia com a chave pública do certificado e a descriptografia com a chave privada
- Confirmar a integridade do arquivo, que é assinado com a chave privada
Verificar a integridade da chave privada
Execute o seguinte comando: openssl rsa -in [key-file .key] -check -noout
Aqui está um exemplo de uma chave privada corrompida:
Outros erros resultantes de uma chave alterada/forjada estão listados abaixo:
- Erro na chave RSA: p não é primo
- Erro na chave RSA: n não é igual a p q
- Erro na chave RSA: d e não é congruente com 1
- Erro de chave RSA: dmp1 não é congruente com d
- Erro na chave RSA: iqmp não é o inverso de q
Se você encontrou algum dos erros acima, sua chave privada foi adulterada e pode não funcionar com sua chave pública. Considere a possibilidade de criar uma nova chave privada e solicitar um certificado de substituição.
Aqui está um exemplo de chave privada que atende à integridade:
Verificar a correspondência do valor do módulo com a chave privada e o par de certificados SSL
Observação:
O módulo da chave privada e do certificado deve corresponder exatamente.
Para visualizar o Modulus do certificado, execute o comando:
openssl x509 -noout -modulus -in [certificate-file .cer]
Para exibir a chave privada Modulus, execute o comando:
openssl rsa -noout -modulus -in [key-file .key]
Criptografar com a chave pública de e descriptografar com a chave privada
1. Obtenha a chave pública do certificado:
openssl x509 -in [certificate-file .cer] -noout -pubkey > certificatefile.pub.cer
2. Criptografar o conteúdo do arquivo test.txt usando a chave pública
Crie um novo arquivo chamado test.txt (você pode usar o Bloco de Notas) com o conteúdo “message test”. Execute o seguinte comando para criar uma mensagem criptografada no arquivo cipher.txt.
openssl rsautl -encrypt -in test.txt -pubin -inkey certificatefile.pub.cer -out cipher.txt
3. Descriptografar de cipher.txt usando a chave privada
Execute o seguinte comando para descriptografar o conteúdo de cipher.txt.
openssl rsautl -decrypt -in cipher.txt -inkey [key-file .key]
Certifique-se de poder descriptografar o conteúdo do arquivo cipher.txt no terminal. A saída do terminal deve corresponder ao conteúdo do arquivo test.txt.
Se o conteúdo não corresponder, a chave privada foi adulterada e pode não funcionar com sua chave pública. Considere a possibilidade de criar uma nova chave privada e solicitar um certificado de substituição. Aqui está um exemplo de uma mensagem descriptografada:
4. Confirme a integridade do arquivo assinado com a chave privada
Execute o seguinte comando para assinar os arquivos test.sig e test.txt com sua chave privada:
openssl dgst -sha256 -sign [key-file .key] -out test.sig test.txt
Agora, verifique os arquivos assinados com sua chave pública extraída da etapa 1.
openssl dgst -sha256 -verify certificatefile.pub.cer -signature test.sig test.txt
Certifique-se de que a saída do terminal seja exatamente como no exemplo abaixo:
Se sua chave privada for adulterada, você receberá a seguinte mensagem:
Nesse caso, você deve criar uma nova chave privada e solicitar um certificado de substituição.
Fonte: Base de Conhecimento da Digicert
Economize 10% em certificados SSL ao fazer seu pedido hoje!
Emissão rápida, criptografia forte, 99,99% de confiança no navegador, suporte dedicado e garantia de reembolso de 25 dias. Código do cupom: SAVE10