SSL SQLSERVER – ERROR CONNECTION

La conexión contigo mismo sólo llega en momentos de silencio

Bryant McGill.

Que tal queridos lectores y unicos amigos El día de hoy vamos hablar un poco sobre el tema Microsoft-eros y vamos a revivir un poco el tema de como conectar SQLSERVER a un entorno Linux. Si ustedes siguen el hilo de esta gran Comunidad Linuxera Guanajuatense, habrán leído un anterior post donde se hablo de como incorporar SQLServer al entorno de Codeigniter . Y dentro de ahí se hablaba sobre un error ssl_choose_client_version : unsupported protocol . El cual ingenuamente pensé que era mas un tema relacionado y exclusivo del lenguaje de PHP. Pero me volví a enfrentar ha este error pero ahora fue tratando de conectar con el famosisimo DBeaver , me dije – esto es un maldito DejaVu yo conozco este error. Así que me puse indagar un poco mas al respecto de esto y os presento mi investigación.

Conexion TLS 1.2 SQLServer

Comenzamos con el tema de conexiones cifradas hacia el SGBD de SQLServer la cual esta en la capa de transporte y esta es la que permite la comunicación bajo ciertos protocolos entre dos sistemas informáticos de forma segura. Así que el TLS “capa de sockets seguros” nos permite incorporar esta privacidad a través de una una encriptación de datos.

Ahora bien yo anteriormente según “ya había configurado el TLS hacia SqlServer ” y todo molaba correctamente. Pero debido a unas vulnerabilidades que tenia el TLS 1.0 este manejador ya no deja permitir este cifrado por lo tanto se debe tener el TLS 1.2 . Y que creen la mayoría de Distros de linux tiene la version 1.0 y esto hace que los protocolos sean incompatibles y por ende no se establece la conexión y marca error. – Fin de la historia vamos ponernos a llorar y hasta que envíen la actualización. XD prosigamos con el tutorial.

Lo primero que tenemos que saber es quien conocer quien es el encargado de proveer el TLS. Pues bien el paquete es el openSSL . El cual es una herramienta de código abierto que contiene funciones criptograficas como : crear claves DSA , RSA , cálculos de hashes , cifrado asimetrico entre otras. Las cuales puedes ser descritas de una forma mas técnica en su pagina oficial openssl.org

Comencemos con la actualización

Lo primero que debemos hacer es saber que versión tenemos de este paquete.

openssl version –a

Si tu versión es menor o igual 1.11 como mi caso debes actualizarlo. Dicha actualización puede ser desde un update desde apt , zypper o dnf al paquete. Pero si lo que vas hacer esta en un servidor recomiendo hacerlo desde source de linux.

Así que lo primero que debemos hacer es irnos a la pagina oficial y descargarnos la archivo

Vamos a usar la terminal y ejecutaremos los siguientes comandos. Para esto debemos tener instalado en nuestro Gnu/Linux los compiladores , El build-essentials en ambientes debian , El pattern devel_basis en openSUSE ,  gccg++ and make en fedora y redhat

wget https://www.openssl.org/source/openssl-3.1.2.tar.gz
tar -zxvf openssl-3.1.2.tar.gz
cd openssl-3.1.2
./Configure
make
sudo make install

Por ahi verán muchos caracteres en la terminal no se preocupen es la matrix , deje que termine el proceso de instalacion y vuelvan a ver la versión de openSSL . Para mas información de la instalacion os dejo la fuente oficial. https://github.com/openssl/openssl/blob/master/INSTALL.md#building-openssl

Que paso con Dbeaver

Bueno buscando por Internet llegue con un blog de un paisano el famoso LestHack el cual nos habla de como configurar el DBeaver para que acepte el esto protocolo. Quiero destacar que si usas Dbeaver con Flatpak este proceso no funciona. O al menos yo no pude. Os dejo el artículo https://jorgeluis.com.mx/articles/2021/dbeaver-tls

Referencias

https://learn.microsoft.com/es-es/sql/linux/sql-server-linux-encrypted-connections?view=sql-server-ver16

https://askubuntu.com/questions/1284658/how-to-fix-microsoft-odbc-driver-17-for-sql-server-ssl-provider-ssl-choose-cli

https://dba.stackexchange.com/questions/319330/is-sql-server-affected-by-openssl-3-0-vulnerabilities-cve-2022-3786-and-cve-202

https://httpd.apache.org/docs/2.4/mod/mod_ssl.html#sslprotocol

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *