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 --- [...]
Otra vez gracias a este blog hemos solucionado un error rarisimo y nada descriptivo.
Millones de gracias!