Configurar SSL para conexiones JDBC

Muchos conectores JDBC admiten SSL unidireccional (estándar) y algunos admiten SSL bidireccional. Para aquellos que no cuentan con soporte explícito para el uso de Tableau, es posible que puedan habilitarlo con personalización. Hay diferentes formas de configurar SSL para ambos tipos, y puede utilizar el método que tenga más sentido para su entorno.

Nota: Para Tableau Cloud, si su certificado de servidor no está firmado por una CA raíz pública común y no tiene la opción de insertar el certificado, puede usar Tableau Bridge. Esto le permitirá configurar certificados y claves privadas según sea necesario.

SSL unidireccional para conexiones JDBC

Si utiliza SSL normal (unidireccional) con un conector basado en JDBC y tiene certificados autofirmados o certificados firmados por una entidad de certificación (CA) no pública, deberá configurar la confianza para el certificado.

Con Tableau, puede configurar la confianza SSL unidireccional para conexiones JDBC mediante uno de estos métodos:

Insertar un certificado

Algunos conectores permiten insertar el certificado en el libro de trabajo o en la fuente de datos. Si está disponible, puede usar Tableau Desktop para insertar el certificado de CA.

Instalar un certificado en el almacén de confianza del sistema

Si la inserción no está disponible, necesitará otra forma de configurar la confianza. También puede ser más fácil hacer esto que insertar el certificado en cada libro de trabajo. A continuación se incluyen instrucciones para las plataformas Windows, Mac y Linux.

La ubicación predeterminada del almacén de confianza para Tableau Server es:

/opt/tableau/tableau_server/packages/repository.20233.24.0514.1218/jre/lib/security/cacerts

Para Windows:

Puede instalar la CA o el certificado autofirmado en el almacén de confianza de la CA raíz de Windows. Java Runtime busca CA de confianza en el almacén de confianza raíz del sistema. No busca en el almacenamiento de certificados intermedio.

Nota: Si ha instalado su CA raíz, pero todavía tiene problemas para hacer las conexiones, puede deberse a la falta de certificados intermedios. Aunque el estándar TLS requiere que los servidores envíen todos los certificados de su cadena excepto el certificado raíz, no todos los servidores son compatibles. Si el servidor no envía los certificados intermedios, puede corregir el servidor para reenviar correctamente certificados intermedios o instalar los certificados intermedios en el almacén de confianza raíz. Como alternativa, puede insertar certificados en la fuente de datos o configurar un almacén de confianza con propiedades de controlador.

  1. En Windows, busque "certificados".
  2. Seleccione Administrar certificados del equipo.
  3. En el menú Acción, seleccione Todas las tareas y, a continuación, en función de la versión de Windows, realice una de las siguientes acciones:
    • Seleccione Importar y, a continuación, seleccione Equipo local.
    • Seleccione Buscar certificados.
  4. Explore su equipo en busca del archivo de certificado.
  5. Impórtelo en "Entidades de certificación raíz de confianza".

Para Mac:

Para instalar un certificado personalizado en un Mac, siga estos pasos para importar el certificado en la cadena de claves "System".

Nota: Cargar certificados desde una cadena de claves en Mac funciona para la mayoría, pero no para todos los controladores. Para otros controladores, es posible que necesite utilizar un archivo .properties para configurar el almacén de confianza. Para obtener más información, consulte Personalizar y ajustar conexiones.

  1. Vaya a https://support.apple.com/guide/keychain-access/add-certificates-to-a-keychain-kyca2431/mac(El enlace se abre en una ventana nueva).
  2. Importe el certificado en la cadena de claves "System" (no "System Roots").
  3. Habilite la confianza de la siguiente manera:
    1. En la aplicación de la cadena de claves, haga clic con el botón derecho en el nuevo certificado.
    2. Seleccione Obtener información.
    3. En el cuadro de diálogo, abra la sección Confianza y, a continuación, seleccione Confiar siempre al utilizar este certificado.

Para Linux:

Muchas distribuciones de Linux generarán un almacén de confianza en formato Java a partir de los certificados del sistema. Es posible que deba instalar Java desde el gestor de paquetes para crear este archivo.

Esto permite que el JRE utilice los mismos certificados que el sistema operativo.

Nota: Tableau Server busca este archivo en las ubicaciones estándar:
/etc/ssl/certs/java/cacerts
/etc/pki/java/cacerts

Para configurar una ubicación diferente, ejecute:

tsm configuration set -k native_api.ConnectivityTrustStore -v <path-to-cacerts> --force-keys

Este archivo debe:

  • Contener todas las CA de confianza y certificados autofirmados.
  • Contener solo claves públicas.
  • Estar en formato JKS.
  • Ser legible para usuarios sin privilegios de Tableau ("ejecutar como usuario").
  • Utilizar la contraseña predeterminada de JKS "changeit"

Para instalar una CA personalizada o un certificado autofirmado, consulte la documentación de la distribución. Ejecute los comandos adecuados para generar el almacén de claves. Por ejemplo:

update-ca-certificates

Usar propiedades de controlador personalizadas

Puede personalizar las opciones de conexión JDBC, incluida la ubicación del almacén de confianza, con un archivo de propiedades. Se trata de un archivo de texto sin formato que contiene pares clave-valor para cada parámetro de conexión.

Por ejemplo, las líneas de este archivo de propiedades se utilizan para ajustar la configuración de confianza:

javax.net.ssl.trustStore=C:\\My_Folder\\truststore.jks
javax.net.ssl.trustStoreType=JKS
javax.net.ssl.trustStorePassword=password

Nota: Para obtener más información sobre la configuración de propiedades específicas, consulte la documentación del controlador.

Al crear el archivo y guardarlo en la ubicación correcta, las propiedades del archivo se aplican a todas las conexiones JDBC al mismo tipo de fuente de datos.

Si utiliza el conector genérico "Otra base de datos (JDBC)", puede especificar un archivo de propiedades directamente en el cuadro de diálogo de conexión.

Para obtener más información, consulte Personalizar y ajustar conexiones(El enlace se abre en una ventana nueva).

SSL bidireccional para conexiones JDBC

Algunas conexiones JDBC, como Postgres, también se pueden configurar para utilizar autenticación SSL bidireccional. Esto se puede configurar utilizando un archivo .properties para especificar las ubicaciones y los detalles del almacén de confianza y las claves.

Utilizar un archivo de propiedades para configurar el certificado de cliente y la clave privada

Nota: Para Tableau Cloud, si necesita SSL bidireccional y su conector no tiene una opción para integrar las claves, deberá usar Tableau Bridge y configurar la SSL allí.

  1. Modifique el archivo .properties para reflejar la configuración del almacén de claves y del almacén de confianza. Utilice lo siguiente como ejemplo. Reemplace "My_Folder" por la ubicación de sus archivos y "<password>" con su propia contraseña. Las rutas de acceso en OSX y Linux solo necesitan una "/" para separar.

    javax.net.ssl.trustStore=C:\\My_Folder\\truststore.jks
    javax.net.ssl.trustStoreType=JKS
    javax.net.ssl.trustStorePassword=<password>
    javax.net.ssl.keyStore=C:\\My_Folder\\keystore.jks
    javax.net.ssl.keyStoreType=JKS
    javax.net.ssl.keyStorePassword=password

  2. Guarde el archivo .properties en la carpeta de fuentes de datos adecuada, según el producto Tableau. Si no está seguro, consulte la lista completa de directorios posibles en Personalizar y ajustar una conexión.
  3. Si publica en Tableau Server, asegúrese de instalar el archivo .properties, truststore.jks y keystore.jks en las ubicaciones correctas para cada nodo de Tableau Server.

Si utiliza este método, no es necesario cargar certificados y claves a través del cuadro de diálogo de SSL. En su lugar, haga clic en Requerir SSL. Esto hace que el conector JDBC lea las ubicaciones del almacén de claves y el almacén de confianza desde el archivo .properties.

Solución de problemas

Los problemas con el uso de SSL a menudo están relacionados con una configuración incorrecta del certificado.

Una forma de comenzar a delimitar el origen del problema es verificar qué certificados están en uso y dónde están instalados. Con las herramientas CLI de OpenSSL instaladas, puede utilizar el dominio s_client:

openssl s_client -connect hostname:port -showcerts

Reemplace hostname y port con los valores adecuados para el sistema que está probando. Cuando se ejecuta, este comando intentará crear una conexión SSL y luego mostrará los certificados enviados desde el servidor.

Algunas bases de datos tienen un protocolo de enlace TLS personalizado y openssl admite un par de ellos directamente. A partir de la última versión, estos son postgres y mysql. Si se va a conectar a una base de datos compatible con postgres o mysql y tiene problemas con el comando anterior, puede intentar usar la opción -starttls para habilitar el protocolo utilizado por su base de datos. Por ejemplo:

openssl s_client -connect hostname:port -showcerts -starttls postgres

Para obtener más información sobre la resolución de problemas con OpenSSL, consulte Uso de comandos s_client de OpenSSL para probar la conectividad SSL(El enlace se abre en una ventana nueva). Puede encontrar la documentación completa de OpenSSL s_client en Documentación de OpenSSL(El enlace se abre en una ventana nueva).

Consulte también

¡Gracias por sus comentarios!Sus comentarios se han enviado correctamente. ¡Gracias!