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