Manejo de Certificados en Linux

Table of Contents

Ubicación de los certificados

Suelen ubicarse en:

ls -la /etc/ssl/

Comandos más Comunes:

Entre los comandos más comunes están:

La lectura en texto plano del certificado:

openssl x509 -in <domain>.crt -text -noout

Ver el certificado presentado actualmente. Ya sea dentro del mismo servidor, o de forma remota:

openssl s_client -connect localhost:443 </dev/null 2>/dev/null | openssl x509 -noout -subject -issuer -dates -serial

Extraer de un pfx el client cert sin la key. Donde passin es el passphrase que colocamos al momento de descargar nuestro certificado

openssl pkcs12 -in <domain>.pfx -clcerts -nokeys -out <domain>.nokey.crt -passin pass:xxxxxxxxxxxxxxx

Extraer de un pfx el CA certificate sin la key:

openssl pkcs12 -in <domain>.pfx -cacerts -nokeys -out <domain>-chain.pem -passin pass:xxxxxxxxxxxxxxx

Combinar dos certificados de texto plano. En este caso el client cert y el CA cert:

cat <domain>.nokey.crt <domain>-chain.pem > <domain>.com.crt

Extraer solo la Key:

openssl pkcs12 -in <domain>.pfx -nocerts -out <domain>.key -passin pass:xxxxxxxxxxxxxxx -passout pass:xxxxxxxxxxxxxxx

Convertir la key en una Unencrypted Key:

openssl rsa -in <domain>.key -out <domain>.decrypted.key -passin pass:xxxxxxxxxxxxxxx

Validar la que la firma del CA certificate sea realmente la que está en el client certificate y que la certificate chain es correcta cert -> intermediate CA -> root CA:

openssl verify -verbose -CAfile <domain>-chain.pem <domain>.nokey.crt

Donde <domain>-chain.pem es el CA certificate y <domain>.nokey.crt es el client certificate