OpenSSL, desde la versión 1.1.1, soporta mínimo TLS v1.2 – Asterisk PJSIP

Desde la versión 1.1.1, OpenSSL soporta mínimo la versión 1.2 de TLS. Esto quiere decir que si en un cliente se intenta utilizar una versión más antigua, tipo 1.0 o 1.1, muy probablemente veremos este error:

SSL routines-tls_early_post_process_client_hello-unsupported protocol

Esta versión está presente en Debian Buster (10) pero no en CentOS 7 pues lo que sigue les va a interesar solamente si compilaron Asterisk PBX en debian 10 o Raspian 10 (no se las demás distribuciones de Linux que versión de OpenSSL utilizan).

Si en el archivo de configuración PJSIP, en un bloque de trasporte de tipo TLS, ponemos la siguiente configuración:

[tls]

type=transport

async_operations=1

bind=0.0.0.0:5061

protocol=tls

method=tlsv1_1

reload=yes

es decir intentamos utilizar la versión 1.1 de TLS (falta la parte de los certificados); luego desde la consola recargamos la configuración:

CLI> pjsip reload

e intentamos registrar un Softphone a un endpoint configurado con trasporte [tls], en la consola de la PBX veremos el siguiente error:

WARNING[17921]: pjproject: <?>: SSL SSL_ERROR_SSL (Handshake): Level: 0 err: <337678594> <SSL routines-tls_early_post_process_client_hello-unsupported protocol> len: 0 peer: XXX.XXX.XXX.XXX:50794

Si en la linea method ponemos tlsv1_2:

[tls]

type=transport

async_operations=1

bind=0.0.0.0:5061

protocol=tls

method=tlsv1_2

reload=yes

y recargamos nuevamente la configuración de pjsip, el Softphone se registrará sin ningún problema.

Todo estos cambios se deben a este bloque:

[system_default_sect]

MinProtocol = TLSv1.2

CipherString = DEFAULT@SECLEVEL=2

presente en el archivo:

/etc/ssl/openssl.cnf

Me di cuenta porque estaba intentando registrar el Softphone GS Wave en un Asterisk compilado en un Raspberry pi y no podía registrarse ya que GS Wave no soporta TLSv1.2 y tampoco TLSv1.1. Soporta solamente la versión TLS 1.0 (por lo menos la versión para iPhone del Softphone).

Ahora no se si el soporte de la versión de TLS se engloba al momento de la creación de los certificados de Let’s Encrypt que he utilizado para la configuración de Asterisk TLS o a lo largo de la compilación de Asterisk. De todas forma una muy buena “chapuza” sería modificar el archivo /etc/ssl/openssl.cnf cambiando la versión mínima aceptada del protocolo TLS y luego compilar Asterisk y crear los certificados. Por ahora no puedo realizar esa prueba. Si lo hacen, me comentan.

Vota el Articulo: 

No votes yet
Evalúa la calidad del articulo
Subscribe to Comments for "OpenSSL, desde la versión 1.1.1, soporta mínimo TLS v1.2 – Asterisk PJSIP" Subscribe to VozToVoice - All comments