# rm-rf.es

OpenSSL: SSL23_GET_SERVER_HELLO:unknown protocol

Con OpenSSL podemos comprobar el estado de una conexión SSL o si la configuración de un servidor web (Apache, IIS, Lighttpd, NginX…) es correcta, tanto a nivel de certificado como de listeners.

El comando para lanzar una petición al servidor web es el siguiente:

# openssl s_client -connect miservidorweb.com

Podemos especificar un puerto distinto:

# openssl s_client -connect miservidorweb.com:444

El hilo venía a raíz de este posible error que puede aparecer al intentar establecer la conexión:

# openssl s_client -connect miservidorweb.com
CONNECTED(00000003)
140360151582536:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:699:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 113 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE

Podemos ver que OpenSSL no encuentra el protocolo a través del cual comunicarse por SSL. El problema se encuentra en el servidor web, o bien no hemos configurado HTTPS por el puerto de conexión indicado (444) en este caso, o directamente el listener no está bien configurado en el servidor.

Deberíamos revisar la configuración del servidor web. ¿Está configurado para escuchar HTTPS por el puerto indicado? Es posible que se haya modificado la configuración y el puerto haya sido modificado sólo parcialmente.

Una vez confirmado que todo esta bien a nivel de servidor web, volvemos a probar y debería funcionar correctamente, volcando por salida estándar la información del certificado:

# openssl s_client -connect miservidorweb.com:444
CONNECTED(00000003)
depth=2 C = US, O = GeoTrust Inc., CN = GeoTrust Global CA
verify return:1
depth=1 C = US, O = "GeoTrust, Inc.", CN = GeoTrust SSL CA
verify return:1
verify return:1
---
Certificate chain
 0 s:/serialNumber=qGb8I
   i:/C=US/O=GeoTrust, Inc./CN=GeoTrust SSL CA
 1 s:/C=US/O=GeoTrust, Inc./CN=GeoTrust SSL CA
   i:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
---
Server certificate
-----BEGIN CERTIFICATE-----

-----END CERTIFICATE-----
subject=/serialNumber=qGb8IgRr-
issuer=/C=US/O=GeoTrust, Inc./CN=GeoTrust SSL CA
---
No client certificate CA names sent
---
SSL handshake has read 3136 bytes and written 311 bytes
---
[...]
Salir de la versión móvil