Configurer SSL pour les connexions JDBC
De nombreux connecteurs JDBC prennent en charge SSL unidirectionnel (standard) et certains prennent en charge SSL bidirectionnel. Pour ceux qui ne bénéficient pas d’un prise en charge explicite avec Tableau, vous pourrez peut-être l’activer via la personnalisation. Il existe différentes manières de configurer SSL pour les deux types et vous pouvez utiliser la méthode la plus adaptée à votre environnement.
Remarque : pour Tableau Cloud, si votre certificat serveur n’est pas signé par une autorité de certification racine publique commune et que vous n’avez pas la possibilité d’intégrer le certificat, vous pouvez utiliser Tableau Bridge. Vous pourrez ainsi configurer les certificats et les clés privées selon vos besoins.
SSL unilatéral pour les connexions JDBC
Si vous utilisez SSL régulier (unilatéral) avec un connecteur basé sur JDBC, et que vous avez des certificats autosignés, ou des certificats qui sont signés par une autorité de certificat (CA) non publique, vous devez configurer la confiance pour votre certificat.
Avec Tableau, vous pouvez configurer l’approbation SSL unilatérale pour les connexions JDBC à l’aide de l’une des méthodes suivantes :
- Intégrer un certificat
- Installer un certificat dans le magasin de confiance du système
- Utiliser les propriétés du pilote personnalisées
Intégrer un certificat
Certains connecteurs prennent en charge l’intégration du certificat dans le classeur ou la source de données. Si cette option est disponible, vous pouvez utiliser Tableau Desktop pour intégrer le certificat CA.
Installer un certificat dans le magasin de confiance du système
Si l’intégration n’est pas disponible, vous aurez besoin d’un autre moyen de configurer la confiance. Il peut d’ailleurs être plus facile de procéder ainsi plutôt que d’intégrer le certificat dans chaque classeur. Les instructions fournies ci-dessous s’appliquent aux plates-formes Windows, Mac et Linux.
L’emplacement du magasin de confiance par défaut pour Tableau Server est :
/opt/tableau/tableau_server/packages/repository.20233.24.0514.1218/jre/lib/security/cacerts
Pour Windows :
Vous pouvez installer votre certificat d’autorité de certification ou votre certificat auto-signé dans le magasin de confiance système. Java Runtime recherche les autorités de certification de confiance dans le magasin de confiance racine du système. Il n’effectue pas de recherche dans le stockage de certificats intermédiaires.
Remarque : si vous avez installé votre CA racine, mais que vous avez encore de la difficulté à établir des connexions, il se peut que l’absence de certificats intermédiaires en soit la cause. Bien que la norme TLS exige que les serveurs envoient tous les certificats de leur chaîne à l’exception du certificat racine, tous les serveurs ne sont pas conformes. Si votre serveur n’envoie pas les certificats intermédiaires, vous pouvez soit corriger le serveur pour qu’il transfère correctement les certificats intermédiaires, soit installer les certificats intermédiaires dans le magasin de confiance racine. Vous pouvez également choisir d’intégrer des certificats dans la source de données ou de configurer un magasin de confiance avec les propriétés du pilote.
- Dans Windows, recherchez « certificats ».
- Sélectionnez Gérer les certificats d’ordinateur.
- Dans le menu Action, sélectionnez Toutes les tâches, puis, selon la version Windows, faites l’une des opérations suivantes :
- Sélectionnez Importer, puis sélectionnez Ordinateur local.
- Sélectionnez Rechercher des certificats.
- Parcourez l’ordinateur pour trouver votre fichier de certificat.
- Importez-le dans « Autorités de certification racine approuvées ».
Pour Mac :
Pour installer un certificat personnalisé sur un Mac, suivez ces étapes pour importer le certificat dans le trousseau « System ».
Remarque : le chargement des certificats de keychain sur Mac fonctionne pour la plupart des pilotes, mais pas tous. Pour les autres pilotes, vous devrez peut-être utiliser un fichier .properties pour configurer le magasin de confiance. Pour plus d’informations, consultez Personnalisation et optimisation des connexions.
- Allez à https://support.apple.com/fr-fr/guide/keychain-access/kyca2431/mac(Le lien s’ouvre dans une nouvelle fenêtre).
- Importez le certificat dans le trousseau « System » (et non « System Roots »).
- Activez la confiance comme suit :
- Dans l’application Trousseaux d’accès, faites un clic droit sur le nouveau certificat.
- Sélectionnez Obtenir des informations.
- Dans la boîte de dialogue, ouvrez la section Confiance, puis sélectionnez Lors de l’utilisation de ce certificat / Toujours faire confiance.
Pour Linux :
De nombreuses distributions Linux généreront un magasin d’approbations au format Java à partir des certificats système. Vous devrez peut-être installer Java à partir du gestionnaire de packages pour que ce fichier soit créé.
Cela permet à JRE d’utiliser les mêmes certificats que le système d’exploitation.
Remarque : Tableau Server recherche ce fichier dans les emplacements standard :/etc/ssl/certs/java/cacerts
/etc/pki/java/cacerts
Pour configurer un emplacement différent, exécutez :
tsm configuration set -k native_api.ConnectivityTrustStore -v <path-to-cacerts> --force-keys
Ce fichier doit :
- Contenir tous les certificats CA de confiance et les certificats autosignés.
- Contenir uniquement des clés publiques.
- Être au format JKS.
- Être lisible par l’utilisateur non privilégié Tableau (« exécuter en tant qu’utilisateur »).
- Utiliser le mot de passe JKS par défaut « changeit »
Pour installer un certificat CA personnalisé ou un certificat autosigné, consultez la documentation de votre distribution. Exécutez les commandes appropriées pour générer le magasin de clés. Par exemple :
update-ca-certificates
Utiliser les propriétés du pilote personnalisées
Vous pouvez personnaliser les options de connexion JDBC, y compris l’emplacement du magasin de confiance avec un fichier .properties. Il s’agit d’un fichier en texte brut contenant des paires de valeurs/clés pour chaque paramètre de connexion.
Par exemple, les lignes de ce fichier de propriétés sont utilisées pour configurer les paramètres de confiance:
javax.net.ssl.trustStore=C:\\My_Folder\\truststore.jks
javax.net.ssl.trustStoreType=JKS
javax.net.ssl.trustStorePassword=password
Remarque : pour plus d’informations sur les paramètres de propriétés spécifiques, consultez la documentation de votre pilote.
Lorsque vous créez le fichier et l’enregistrez à l’emplacement correct, les propriétés du fichier sont appliquées à toutes les connexions JDBC au même type de source de données.
Si vous utilisez le connecteur générique « Autres bases de données (JDBC) », vous pouvez spécifier un fichier .properties directement dans la boîte de dialogue de connexion.
Pour plus d’informations, consultez Personnalisation et optimisation des connexions(Le lien s’ouvre dans une nouvelle fenêtre).
SSL bidirectionnel pour les connexions JDBC
Certaines connexions JDBC, telles que Postgres, peuvent également être configurées de manière à utiliser l’authentification SSL bidirectionnelle. Dans ce cas, utilisez un fichier .properties pour spécifier les emplacements ainsi que les détails du magasin de confiance et des clés.
Utiliser un fichier .properties pour configurer le certificat client et la clé privée
Remarque : pour Tableau Cloud, si vous avez besoin de SSL bidirectionnel et que votre connecteur n’a pas d’option pour intégrer les clés, vous devrez utiliser Tableau Bridge et y configurer la configuration SSL.
- Modifiez le fichier .properties de manière à refléter les paramètres du magasin de clés et du magasin de confiance. Prenez ce qui suit pour exemple. Remplacez « My_Folder » par l’emplacement de vos fichiers et « <password> » par votre propre mot de passe. Les chemins d’accès sur OSX et Linux n’ont besoin que d’un seul trait de séparation « / ».
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 - Enregistrez le fichier .properties dans le dossier de sources de données approprié, en fonction du produit Tableau. En cas de doute, consultez la liste complète des répertoires possibles dans Personnalisation et optimisation d’une connexion.
- Si vous publiez sur Tableau Server, veillez à installer les fichiers .properties, truststore.jks et keystore.jks aux emplacements corrects pour chaque nœud Tableau Server.
Si vous utilisez cette méthode, vous n’avez pas besoin de télécharger des certificats et une clé via la boîte de dialogue SSL. Au lieu de cela, cliquez simplement sur Nécessite SSL. Le connecteur JDBC lit alors les emplacements du magasin de clés et du magasin de confiance à partir du fichier .properties.
Résolution des problèmes
Les problèmes liés à l’utilisation de SSL se rapportent souvent à une configuration de certificat incorrecte.
Pour déterminer la source du problème, commencez par vérifier quels certificats sont utilisés et où ils sont installés. Avec les outils d’interface en ligne de commande OpenSSL installés, vous pouvez utiliser la commande s_client
:
openssl s_client -connect hostname:port -showcerts
Remplacez hostname
et port
par des valeurs adaptées au système que vous testez. Une fois exécutée, cette commande tente de créer une connexion SSL, puis d’afficher les certificats envoyés depuis le serveur.
Certaines bases de données ont une négociation TLS personnalisée, et OpenSLL prend en charge directement certaines d’entre elles. Depuis la dernière version, il s’agit de Postgres et de MySQL. Si vous vous connectez à une base de données compatible Postgres ou MySQL et que vous rencontrez des problèmes avec la commande ci-dessus, vous pouvez essayer d’utiliser l’option -starttls pour activer le protocole utilisé par votre base de données. Par exemple :
openssl s_client -connect hostname:port -showcerts -starttls postgres
Pour plus d’informations sur le dépannage avec OpenSSL, consultez Utilisation des commandes OpenSSL s_client pour tester la connectivité SSL(Le lien s’ouvre dans une nouvelle fenêtre). Vous trouverez la documentation complète d’OpenSSL s_client dans Documentation OpenSSL(Le lien s’ouvre dans une nouvelle fenêtre).
Voir également
- Exiger SSL pour les connexions Oracle JDBC(Le lien s’ouvre dans une nouvelle fenêtre) - Instructions d’installation pour l’ajout de certificats SSL de confiance aux connexions Oracle JDBC.
- Connexions Oracle JDBC avec SSL