OpenSSL es una herramienta extremadamente potente, la cual permite hacer todo tipo de manejos relacionados a TLS/SSL, desde creación de claves y certificados, realizar conexiones tipo telnet a servicios que se ejecutan sobre SSL, hasta generar hashes de archivos, entre otras cosas.
A continuación les dejo un listado de comandos útiles a realizar con OpenSSL. La mayoría se centran en la creación y manipulación de claves y certificados, algo que todo administrador ha tenido que hacer alguna vez.
Ya había escrito sobre la creación de certificados en el artículo Certificados Digitales, donde podrán encontrar una explicación más detallada sobre ello. En éste la idea es dejar un acceso rápido a comandos que nos serán muy útiles, además de proveer varios comandos adicionales a los descriptos anteriormente.
Cabe mencionar que muchos de estos comandos los aprendí gracias al artículo The Most Common OpenSSL Commands y los completé con el excelente OpenSSL Command-Line HOWTO y Creating an SSL Certificate of Authority.
Claves
Generar clave RSA de 4096 bits encriptada con 3des:
$ openssl genrsa -des3 -out superkey.key 4096
Desencriptar la clave privada
$ openssl rsa -in superkey.key -out super-decrypted.key
Extraer la clave privada de un archivo en formato PKCS#12:
$ openssl pkcs12 -in certificad.pfx -out clave.pem -nodes -nocerts
Verificar clave RSA:
$ openssl rsa -in interbankingtestmil-open.pkcs -check
Convertir formatos
Convertir clave de formato tradicional a pkcs8:
$ openssl pkcs8 -in key.pem -topk8 -out pkcskey.pkcs
Convertir un certificado PEM y una clave privada en un archivo formato PKCS#12 (.pfx o p12)
$ openssl pkcs12 -export -out certificado.pfx -inkey clave.pem -in certificado.crt -certfile certificadoCA.crt
Certificados
Crear una CA Propia con validez de 10 años y clave RSA de 4096 bits:
$ openssl req -new -x509 -days 3650 -extensions v3_ca -newkey rsa:4096 -keyout private/newca.pem -out newca.crt //-config /etc/ssl/openssl.cnf
Generar un request de certificado:
$ openssl req -new -key superkey.key -out certrequest.csr
Autofirmar request de certificado (CSR):
$ openssl x509 -req -days 3650 -in cert-request.csr -signkey ca.key -out certificado.crt
Firmar request con CA:
$ openssl ca -in cert-request.csr -out certificado.crt -days 3650
Crear clave y certificado autofirmado en un solo paso:
$ openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout privateKey.key -out certificate.crt
Extraer el certificado incluído en un contenedor PKCS#12:
$ openssl pkcs12 -in certificad.pfx -out certificado.crt -nodes -nokeys
Ver los campos de un request de certificado:
$ openssl req -noout -text -in certrequest.csr
Ver campos del certificado:
$ openssl x509 -in certificado.crt -text -noout
Ver campos de un contenedor PKCS#12:
$ openssl pkcs12 -info -in certificado.pfx
Otras utilidades
Conectar a un servicio que se ejecuta sobre SSL (por ejemplo HTTPS):
$ openssl s_client -connect servidor:443
Calcular el hash MD5, SHA1, SHA2, etc de un archivo y de un texto
$ openssl dgst [-md5|-md4|-md2|-sha1|-sha|-mdc2|-ripemd160|-dss1] archivo
$ echo "texto" | openssl dgst [-md5|-md4|-md2|-sha1|-sha|-mdc2|-ripemd160|-dss1]
0 comentarios:
Publicar un comentario