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:
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.