21 ejemplos de OpenSSL para ayudarte en el mundo real

Cree, administre y convierta certificados SSL con OpenSSL

Uno de los comandos más populares en SSL para crear, convertir y administrar los certificados SSL es OpenSSL.

Habrá muchas situaciones en las que tendrá que lidiar con OpenSSL de varias maneras, y aquí las he enumerado para usted como una práctica hoja de trucos.

En este artículo, hablaré sobre los comandos OpenSSL de uso frecuente para ayudarlo en el mundo real.

Algunas de las abreviaturas relacionadas con los certificados.

  • SSL: capa de conexión segura
  • CSR – Solicitud de firma de certificado
  • TLS: seguridad de la capa de transporte
  • PEM: correo con privacidad mejorada
  • DER – Reglas de codificación distinguidas
  • SHA: algoritmo hash seguro
  • PKCS: estándares de criptografía de clave pública

Nota: Curso de funcionamiento de SSL/TLS sería útil si no está familiarizado con los términos.

Crear una nueva solicitud de firma de certificado y clave privada

openssl req -out kirukiru.es.csr -newkey rsa:2048 -nodes -keyout kirukiru.es.key

El comando anterior generará CSR y un archivo de clave RSA de 2048 bits. Si tiene la intención de usar este certificado en Apache o Nginx, debe enviar este archivo CSR a la autoridad emisora ​​del certificado, y le darán un certificado firmado principalmente en formato der o pem que debe configurar en el servidor web Apache o Nginx. .

Crear un certificado autofirmado

openssl req -x509 -sha256 -nodes -newkey rsa:2048 -keyout gfselfsigned.key -out gfcert.pem

El comando anterior generará un certificado autofirmado y un archivo de clave con RSA de 2048 bits. También he incluido sha256 porque se considera más seguro en este momento.

Sugerencia: de forma predeterminada, generará un certificado autofirmado válido solo por un mes, por lo que puede considerar definir el parámetro días para extender la validez.

Ej: tener auto-firmado válido por dos años.

openssl req -x509 -sha256 -nodes -days 730 -newkey rsa:2048 -keyout gfselfsigned.key -out gfcert.pem

Verificar archivo CSR

openssl req -noout -text -in kirukiru.es.csr

La verificación es esencial para asegurarse de que está enviando CSR a la autoridad emisora ​​con los detalles requeridos.

Crear clave privada RSA

openssl genrsa -out private.key 2048

Si solo necesita generar una clave privada RSA, puede usar el comando anterior. He incluido 2048 para un cifrado más fuerte.

Quitar frase de contraseña de la clave

openssl rsa -in certkey.key -out nopassphrase.key

Si está utilizando una frase de contraseña en el archivo de clave y utiliza Apache, cada vez que inicie, debe ingresar la contraseña. Si le molesta ingresar una contraseña, puede usar la verificación anterior de openssl rsa -in kirukiru.es.key -check para eliminar la clave de frase de contraseña de una clave existente.

Verificar clave privada

openssl rsa -in certkey.key –check

Si duda de su archivo clave, puede usar el comando anterior para verificar.

Verificar archivo de certificado

openssl x509 -in certfile.pem -text –noout

Si desea validar los datos del certificado como CN, OU, etc., puede usar un comando anterior que le dará los detalles del certificado.

Verificar la autoridad del firmante del certificado

openssl x509 -in certfile.pem -noout -issuer -issuer_hash

La autoridad emisora ​​de certificados firma cada certificado y en caso de que necesite verificarlos.

Comprobar el valor hash de un certificado

openssl x509 -noout -hash -in bestflare.pem

Convertir formato DER a PEM

openssl x509 –inform der –in sslcert.der –out sslcert.pem

Por lo general, la autoridad de certificación le dará un certificado SSL en formato .der, y si necesita usarlos en formato apache o .pem, el comando anterior lo ayudará.

Convertir formato PEM a DER

openssl x509 –outform der –in sslcert.pem –out sslcert.der

En caso de que necesite cambiar el formato .pem a .der

Convierta el certificado y la clave privada al formato PKCS#12

openssl pkcs12 –export –out sslcert.pfx –inkey key.pem –in sslcert.pem

Si necesita usar un certificado con la aplicación Java o con cualquier otra que acepte solo el formato PKCS # 12, puede usar el comando anterior, que generará un solo pfx que contiene el certificado y el archivo de clave.

Sugerencia: también puede incluir el certificado de cadena pasando –chain como se muestra a continuación.

openssl pkcs12 –export –out sslcert.pfx –inkey key.pem –in sslcert.pem -chain cacert.pem

Crear CSR utilizando una clave privada existente

openssl req –out certificate.csr –key existing.key –new

Si no desea crear una nueva clave privada en lugar de usar una existente, puede usar el comando anterior.

Verifique el contenido del certificado de formato PKCS12

openssl pkcs12 –info –nodes –in cert.p12

PKCS12 es un formato binario, por lo que no podrá ver el contenido en el bloc de notas u otro editor. El comando anterior lo ayudará a ver el contenido del archivo PKCS12.

Convertir formato PKCS12 a certificado PEM

openssl pkcs12 –in cert.p12 –out cert.pem

Si desea usar el formato pkcs12 existente con Apache o solo en formato pem, esto será útil.

Probar el certificado SSL de una URL en particular

openssl s_client -connect yoururl.com:443 –showcerts

Lo uso con bastante frecuencia para validar el certificado SSL de una URL particular del servidor. Esto es muy útil para validar el protocolo, el cifrado y los detalles del certificado.

Descubra la versión de OpenSSL

openssl version

Si usted es responsable de garantizar que OpenSSL sea seguro, probablemente una de las primeras cosas que debe hacer es verificar la versión.

Comprobar la fecha de caducidad del certificado del archivo PEM

openssl x509 -noout -in certificate.pem -dates

Útil si planea poner algún monitoreo para verificar la validez. Le mostrará una fecha en la sintaxis notBefore y notAfter. notAfter es uno que tendrá que verificar para confirmar si un certificado ha caducado o sigue siendo válido.

Ex:

[[email protected] opt]# openssl x509 -noout -in bestflare.pem -dates
notBefore=Jul 4 14:02:45 2015 GMT
notAfter=Aug 4 09:46:42 2015 GMT
[[email protected] opt]#

Comprobar la fecha de caducidad del certificado de la URL de SSL

openssl s_client -connect secureurl.com:443 2>/dev/null | openssl x509 -noout –enddate

Otro útil si planea monitorear la fecha de vencimiento del certificado SSL de forma remota o una URL en particular.

Ex:

[[email protected] opt]# openssl s_client -connect google.com:443 2>/dev/null | openssl x509 -noout -enddate

notAfter=Dec 8 00:00:00 2015 GMT

Compruebe si se acepta SSL V2 o V3 en la URL

Para comprobar SSL V2

openssl s_client -connect secureurl.com:443 -ssl2

Para comprobar SSL V3

openssl s_client -connect secureurl.com:443 –ssl3

Para comprobar TLS 1.0

openssl s_client -connect secureurl.com:443 –tls1

Para comprobar TLS 1.1

openssl s_client -connect secureurl.com:443 –tls1_1

Para comprobar TLS 1.2

openssl s_client -connect secureurl.com:443 –tls1_2

Si está asegurando un servidor web y necesita validar si SSL V2/V3 está habilitado o no, puede usar el comando anterior. Si está activado, obtendrá «CONECTADO», de lo contrario, «fallo de protocolo de enlace».

Verifique si el cifrado en particular se acepta en la URL

openssl s_client -cipher 'ECDHE-ECDSA-AES256-SHA' -connect secureurl:443

Si está trabajando en hallazgos de seguridad y los resultados de la prueba de penetración muestran que se aceptan algunos de los cifrados débiles, entonces para validar, puede usar el comando anterior.

Por supuesto, tendrá que cambiar el cifrado y la URL con los que desea realizar la prueba. Si se acepta el cifrado mencionado, obtendrá «CONECTADO», de lo contrario, «fallo de protocolo de enlace».

Espero que los comandos anteriores lo ayuden a saber más sobre OpenSSL para administrar certificados SSL para su sitio web.