Cómo usar el OpenSSL S_client

Cómo usar el OpenSSL S_client
Si es responsable de mantener las aplicaciones protegidas por TLS, es necesario saber cómo usar el OpenSSL S_Client. Muchos servidores y aplicaciones web dependen de OpenSSL, una biblioteca criptográfica, para ofrecerles protección criptográfica para asegurar su comunicación a través de Internet.

OpenSSL funciona con los protocolos SSL y TLS. Cubriremos las diferentes formas de usar el OpenSSL S_client para probar y verificar sus conexiones SSL.

Ejemplos de uso de OpenSSL S_Client

OpenSSL Toolkit ofrece muchas opciones que puede especificar para lograr diferentes objetivos.

1. Probar la conexión

Para probar la conectividad de su servicio HTTPS y ver la información de diagnóstico relacionada con la conexión SSL a un servidor determinado, incluida la información como la cadena de certificados, debe utilizar el -conectar bandera.

$ openssl s_client - conectar [yourdomain].com: 443

Estamos utilizando el puerto 443 como se prefiere para HTTP seguro a través de TLS/SSL. La salida del comando muestra detalles básicos sobre la conexión que está estableciendo con el servidor.

Por ejemplo, usaremos kyle.comunicarse Como el servidor.

2. Imprimir todos los certificados

El servicio SSL presenta cadenas de certificados, y puede mostrarlas todas, lo cual es útil cuando necesita solucionar problemas de certificados, como certificados de ordenización errónea.

$ openssl s_client -connect kyle.com: 443 -showcerts

La salida mostrará los diferentes certificados como se refleja en la siguiente imagen:

Puede inspeccionar manualmente cada uno de los certificados que devuelve el servidor desde la salida.

3. Verifique la validez del certificado

Una vez que tenga la cadena de certificados devueltos por el servidor, puede probar cuán válidos son.

$ openssl s_client -connect kyle.com: 443 -Brief

Para confirmar la validez, busque el Verificación, y su salida debe leer "DE ACUERDO".

El -breve El indicador ayuda a reducir la salida excluyendo algunos detalles detallados.

En nuestro caso, confirmamos que nuestros certificados son válidos.

4. Verifique las fechas de vencimiento del certificado

Usando OpenSSL S_Client, puede verificar las fechas de vencimiento del certificado del sitio web desde la línea de comandos. Aquí, deberá combinar dos comandos como se refleja a continuación:

$ openssl s_client -connect kyle.com: 443 2> /dev /null | OpenSSL x509 -NOOUT -FECHA

El -sin salida La bandera suprime el comando para mostrar el certificado codificado.


La salida muestra el rango cuando los certificados caducarán. Como administrador del sistema, dichos detalles son vitales como puede saber cuándo necesita obtener un nuevo certificado.

5. Verifique la conexión SSL

Para verificar el estado de la conexión SSL a su servidor, use el -Verify_return_error bandera.

$ openssl s_client -verify_return_error -connect kyle.com: 443

Si la conexión es exitosa, el apretón de manos pasará. Pero si ve errores, significa que el apretón de manos SSL ha fallado y no se puede establecer ninguna conexión.

6. Ver la huella digital para el certificado SSL

Los certificados SSL tienen una huella digital. Puede obtener la huella digital de un certificado como se muestra en lo siguiente:

$ openssl s_client -connect kyle.com: 443 2> /dev /null | OpenSSL x509 -nout -fingerprint

7. Especificar el cifrado

Puede especificar qué tipo de cifrado o cifrado usar para el certificado utilizando el -cifrar bandera. Por ejemplo, podemos especificar para usar el DHE-PSK-AES128-CBC-SHA. Al hacerlo, el lado del cliente deberá usar el conjunto de cifrado especificado para la conexión.

$ openssl s_client -connect kyle.com: 443 -Cipher DHE-PSK-AES128-CBC-SHA

Puede ver la lista de cifrados disponibles utilizando el siguiente comando:

$ Openssl Ciphers

La salida debe parecer similar a la siguiente imagen:

8. Especifique la versión SSL/TLS y los cifrados para usar

El s_client, por defecto, negocia qué versión de protocolo para usar SSL/TL. Sin embargo, puede especificar qué versiones usar utilizando cualquiera de las siguientes opciones:

  1. -SSL2: SSL versión 2
  2. -SSL3: SSL versión 3
  3. -TLS1: TLS versión 1.0
  4. -TLS1_1: TLS versión 1.1
  5. -TLS1_2: TLS versión 1.2

Además, antes de especificar qué cifrados usar, primero puede verificar las versiones compatibles. En el siguiente ejemplo, verificaremos el TLS1_3 versiones.

El comando es el siguiente:

$ OpenSSL CIPHERS -S -TLS1_3

Los cifrados compatibles son:

Si desea especificar una versión SSL/TLS dada para la conexión, solo necesita agregarla al probar su conexión, como en el caso a continuación:

$ openssl s_client -connect kyle.com: 443 -tls1_3

Si no desea usar una versión dada, prependa un No_ al nombre. Un ejemplo de deshabilitar TLS1_1 sería NO_TLS1_1. En tal caso, se utilizarán las otras versiones de protocolo.

9. Enviar mensaje específico del protocolo

OpenSSL admite diferentes protocolos, como FTP, IRC, SMTP, LDAP, POP3, IMAP, etc. Cuando necesita probar la conexión utilizando un protocolo específico o especificar qué protocolo usar para la comunicación, puede usar el -starttls bandera.

Por ejemplo, para probar el certificado HFTP, use el siguiente comando:

$ openssl s_client -connect kyle.com: 443 -Starttls ftp -servername kyle.comunicarse

10. Verificar el nombre de host

Para verificar el nombre de host, use el -verify_hostname. Si el nombre de host no coincide, recibirá un mensaje de error de verificación como el siguiente:

Si ese es el caso, debe obtener un certificado con un SAN o CN que coincida con su dominio.

Conclusión

OpenSSL Toolkit tiene interminables opciones que puede usar para satisfacer sus necesidades. Hemos cubierto los comunes, pero la página principal es su mejor recurso si necesita explorar más. Aprender el OpenSSL facilitará su vida al tratar con servidores y conexiones para cualquier tarea de administración del sistema. Por lo tanto, haga un punto para practicar el comando.