Se você tem um arquivo .pfx e precisa da chave privada ou do próprio certificado, é possível fazer a extração usando OpenSSL. Também existem outras opções, mas talvez a mais conhecida seja o OpenSSL.
Antes da extração, algumas definições da Internet:
-
Certificado: O certificado é um contêiner para a chave pública. Ele inclui, além da chave pública, o nome e algumas informações sobre o servidor, e uma assinatura calculada por uma entidade certificadora (CA). Quando o servidor envia sua chave pública para um cliente, ele está enviando seu certificado e a cadeia de certificados relacionada (o certificado que contém a chave pública da CA que assinou o certificado – raiz e intermediários).
-
Chave Privada: A chave privada, fica de posse do servidor, mantida “em segredo” e usada para receber e validar as conexões SSL.
-
Chave Pública: A chave pública é matematicamente vinculada à chave privada, e tornada “pública” porque é enviada a cada cliente como parte das etapas iniciais de conexão.
-
.PFX: Um arquivo .pfx (arquivo PKCS#12), pode ser visto como “um pacote” com vários objetos protegidos (opcionalmente) por senha. Geralmente um arquivo PKCS#12 contém um certificado, possivelmente os certificados da cadeia envolvida (raiz e intermediários) e a chave privada correspondente.
-
.CSR: O Certificate Signing Request, é justamente a solicitação para que a CA assine um certificado.
- .Cert: Um arquivo .cert (ou .cer ou .crt) geralmente contém um único certificado, sozinho e sem qualquer encapsulamento (sem chave privada, sem proteção por senha).
- .Pem e .Key: Arquivos com estas extensões normalmente são associados a chave pública e a chave privada, respectivamente. Note no entanto que estas extensões são apenas convenções e os arquivos (cert, cer, crt, pem e key) podem ser nomeados com outras extensões sem maiores problemas.
Extraindo a chave privada e o certificado de um arquivo .pfx
Uso este procedimento com certa frequência, pois quando estou configurando portal de visitante no Cisco ISE preciso do certificado, da chave privada e da senha, separados. E o cliente costuma me entregar o arquivo pfx, que ele por sua vez baixou de onde ele comprou o certificado (entidade certificadora pública).
Para saber o que tem em um arquivo .pfx podemos usar o comando openssl pkcs12 -in CertPublic2022.pfx –info (lembre que o pfx é um pacote, que pode ter ou não os arquivos que você precisa).
Cifras não suportadas
As versões mais novas do openssl não suportam (por padrão) cifras mais antigas, como o RC2.
Neste caso, ao tentar fazer o processo, vai receber a mensagem “error:0308010C:digital envelope routines:inner_evp_generic_fetch: unsupported”, e assim é necessário adicionar o parâmetro -legacy ao comando.
openssl pkcs12 -in WildCardCert.pfx -nodes -legacy -out WildCardCert.cer
Com o OpenSSL ainda podemos converter formatos, fazer também o processo inverso (agregar chave privada, certificado e etc), entre outros.
O OpenSSL pode ser baixado aqui, para Linux e Windows.
Até a próxima.
You must be logged in to post a comment.