Extraido de: http://www.bdat.net/documentos/certificados_digitales/x359.html
Para verificar la firma necesitamos la llave privada
openssl req -in newcert.req -noout -verify -key cert.key
|
La llave privada puede encontrarse en el mismo fichero
que el certificado como vimos en ejemplos anteriores.
openssl req -in newcert.req -noout -text
|
Para ver la información general sobre un
certificado:
openssl s_server -cert mycert.pem -www
|
Para ver el emisor del certificado
openssl x509 -noout -in cert.pem -issuer
|
Para ver el propietario del certificado
openssl x509 -noout -in cert.pem -subject
|
Para ver su periodo de validez
openssl x509 -noout -in cert.pem -dates
|
Con más de una opción a la vez
openssl x509 -noout -in cert.pem -issuer -subject -dates
|
El el valor hash
openssl x509 -noout -in cert.pem -hash
|
Ver la huella digital MD5
openssl x509 -noout -in cert.pem -fingerprint
|
Mostrar la huella digital SHA1 de un certificado
openssl x509 -sha1 -in cert.pem -noout -fingerprint
|
Mostrar el contenido de un certificado
openssl x509 -in cert.pem -noout -text
|
Mostrar el número de serie de un certificado
openssl x509 -in cert.pem -noout -serial
|
Mostrar el propietario de un certificado en formato
RFC2253
openssl x509 -in cert.pem -noout -subject -nameopt RFC2253
|
Mostrar el propietario de un certificado en una
línea en un terminal con UTF8
openssl x509 -in cert.pem -noout -subject -nameopt oneline,-escmsb
|
Crear un certificado del confianza para uso de clientes
SSL cambiando su alias a "Steve's Class 1 CA"
openssl x509 -in cert.pem -addtrust clientAuth \
-setalias "Steve's Class 1 CA" -out trust.pem
|
openssl s_client -connect host:puerto
|
Podemos ver un script para recoger certificados:
#!/bin/sh
#
# usage: retrieve-cert.sh remote.host.name [port]
#
REMHOST=$1
REMPORT=${2:-443}
openssl s_client -connect ${REMHOST}:${REMPORT} 2>&1 |\
sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'
|
Convertir un certificado a solicitud de certificado
openssl x509 -x509toreq -in cert.pem -out req.pem -signkey key.pem
|
Convertir una solicitud de certificado en un certificado
autofirmado usando extensiones para una CA
openssl x509 -req -in careq.pem \
-extfile openssl.cnf -extensions v3_ca \
-signkey key.pem -out cacert.pem
|
Convertir un certificado de formato PEM a DER
openssl x509 -in cert.pem -inform PEM -out cert.der -outform DER
|
Los ficheros PKCS#12 se pueden exportar desde diversas
aplicaciones, como por ejemplo Microsoft IIS. Con
frecuencia están asociados a la extensión
.pfx.
Paa crear un certificado PKCS#12 primero necesitamos una
llave privada y un certificado. Durante el proceso de
conversión tiene la posibilidad de de introducir
una contraseña de exportación para el
certificado, que puede ser nula.
# Primero creamos un fichero con la llave privada y el
certificado autofirmado
openssl req \
-x509 -nodes -days 365 \
-newkey rsa:1024 -keyout mycert.pem -out mycert.pem
|
# exportamos mycert.pem como fichero PKCS#12: mycert.pfx
openssl pkcs12 -export \
-out mycert.pfx -in mycert.pem \
-name "Mi certificado"
|
Si alguien le envía un certificado PKCS#12
necesario y protegido por contraseña, se puede
exportar en formato PEM estándar.
# exportar certificado sin clave
openssl pkcs12 -in mycert.pfx -out mycert.pem -nodes
|
# exportar el certificado pero cambiándole la
clave
openssl pkcs12 -in mycert.pfx -out mycert.pem
|
Las aplicaciones enlazadas con la biblioteca OpenSSL
pueden verificar certificados firmados por un CA
reconocido.
Para verificar un certificado usamos la orden verify de
openssl:
Si el certificado es correcto la aplicación
responde con un ?OK?. Si no es correcto emite el mensaje
correspondiente.
Por ejemplo:
error 10 at 0 depth lookup:certificate has expired.
|
Indica que el certificado ha sobrepasado su periodo de
vigencia.
error 18 at 0 depth lookup:self signed certificate.
|
openssl no verifica certificados autofirmados.
No hay comentarios:
Publicar un comentario