Passo a passo para processo de conversão de certificados digitais (.pfx) utilizando o OpenSSL no Windows.
Problema: Ao tentar utilizar/ler um certificado digital, pode ocorrer a exceção abaixo:
"System.Security.Cryptography.CryptographicException"
Rotinas: 657,232
Exemplos de mensagens de erro relacionado:
Pré-requisitos
• Acesso administrativo ao Windows (PowerShell como Administrador).
• Instalador do OpenSSL (Win64OpenSSL_Light-3_5_1.exe).
• Arquivo .pfx do certificado e a senha correspondente (frequentemente em info.txt).
Passo - 1. Instalar software OpenSSL
Fonte: https://slproweb.com/products/Win32OpenSSL.html
Win64OpenSSL_Light-3_5_1.exe
Disponível também no Teams: Geral > Aplicativos > Documentos Fiscais
Abaixo passo a passo para instalação OpenSSL.
Aceitar os termos de uso clicar em "Next"
Prosseguir clicando em "Next"
Prosseguir clicando em "Next"
Desmarcar todos check-box e clicar em Finish
Passo - 2. Criar diretório para conversão via Power Shell
Criar pasta para conversão do certificado conforme exemplo abaixo:
"C:\CertificadosConvertidosSSL"
Após criar o diretório copiar o certificado que será convertido para o diretório conforme exemplo
Executar o Power Shell como administrador
Navegar até o diretório criado conforme exemplo de comando abaixo:
cd C:\CertificadosConvertidosSSL
Exemplo de comando a ser executado no Power Shell
& "C:\Program Files\OpenSSL-Win64\bin\openssl.exe" pkcs12 -in "C:\CertificadosConvertidosSSL\CERTIFICADO_TESTE.pfx" -nokeys -out "certificado_teste_certificado.cer" -passin "pass:SenhaDoCertificadoAqui"
& "C:\Program Files\OpenSSL-Win64\bin\openssl.exe" pkcs12 -in "C:\CertificadosConvertidosSSL\CERTIFICADO_TESTE.pfx" -nocerts -out "certificado_teste_chave.pem" -passin "pass:SenhaDoCertificadoAqui" -passout "pass:SenhaDoCertificadoAqui"
& "C:\Program Files\OpenSSL-Win64\bin\openssl.exe" rsa -inform PEM -in "certificado_teste_chave.pem" -out "certificado_teste_chave.rsa" -passin "pass:SenhaDoCertificadoAqui" -passout "pass:SenhaDoCertificadoAqui"
& "C:\Program Files\OpenSSL-Win64\bin\openssl.exe" pkcs12 -export -in "certificado_teste_certificado.cer" -inkey "certificado_teste_chave.rsa" -out "CERTIFICADO_TESTE_CONVERTIDO.pfx" -passin "pass:SenhaDoCertificadoAqui" -passout "pass:SenhaDoCertificadoAqui"
Editar campos:
- Nome do arquivo com ".pfx" para o nome do certificado correto que será convertido.
- pass: Senha do certificado do cliente geralmente disponível no arquivo "info.txt"
Após executado o comando o certificado convertido estará disponível no diretório.
Certificado convertido disponível para importação no Windows.
Passo - 3. Importação e Exportação de Certificado convertido
Processo de importação local de certificado digital. No certificado convertido dar 2 clicks e prosseguir com o passo a passo abaixo.
IMPORTAÇÃO
Clicar em avançar
Prosseguir clicando em avançar
Digitar senha (disponível no arquivo info.txt)
Marcar os check-box:
- Marcar esta chave como exportável.
- Incluir todas as propriedades estendidas.
Selecionar opção: Selecionar automaticamente o repositório de certificados conforme o tipo de certificado e clicar em avançar
Após avançar, a importação será concluída.
EXPORTAÇÃO
Abaixo processo de exportação de certificado local.
Acessar menu iniciar e pesquisar por "Gerenciar Certificados do Computador" ou executar o comando "certmgr". conforme exemplo abaixo:
Localizar o certificado convertido que foi importado
Clicar com o botão direito sobre o certificado > Todas as Tarefas > Exportar ...
Seguir conforme passo a passo de exportação abaixo
Clicar em avançar
Marcar "Sim, exportar a chave privada"
Marcar os check-box:
- Incluir todos os certificados no caminho de certificação se possível
- Exportar todas as propriedades estentidas
- Habilitar privacidade de certificados
Marcar check-box
- Senha
Inserir a mesma senha disponível no arquivo info.txt
Descrever nome do certificado exportado e salva-lo em um diretório.
Para finalizar a exportação, clicar em "Concluir".
Após exportado o certificado pode ser importado no MOVERE via rotina 1210.