Configurer SSL pour les connexions JDBC
Plusieurs connecteurs JDBC prennent en charge SSL unilatéral (standard) et certains prennent en charge SSL réciproque. Pour les utilisateurs qui ne bénéficient pas d’une assistance explicite dans Tableau, il est possible de l’activer grâce à la personnalisation. Il existe plusieurs manières de configurer les deux types de SSL, et vous pouvez utiliser la méthode la plus adaptée à votre environnement.
Remarque : Pour Tableau Cloud, si votre certificat de serveur n’est pas signé par une autorité de certification racine publique commune et que vous ne pouvez pas intégrer le certificat, vous pouvez utiliser Tableau Bridge. Cela vous permettra de 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 devrez procéder autrement pour 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 sont incluses pour les plateformes Windows, Mac et Linux ci-dessous.
L’emplacement par défaut du magasin de confiance 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 Windows. 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-ca/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 réciproque pour les connexions JDBC
Certaines connexions JDBC, telles que Postgres, peuvent également être configurées de manière à utiliser l’authentification SSL réciproque. Cette configuration s’effectue en utilisant un fichier .properties pour spécifier les emplacements et 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 d’un SSL réciproque et que votre connecteur ne peut pas intégrer les clés, vous devrez utiliser Tableau Bridge et y définir 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 concerné, 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 le fichier .properties, truststore.jks et keystore.jks aux emplacements appropriés pour chaque nœud Tableau Server.
Si vous utilisez cette méthode, vous n’avez pas besoin de téléverser 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 d’utilisation de SSL sont souvent attribuables à une mauvaise configuration du certificat.
Un moyen de circonscrire la source du problème consiste à vérifier quels certificats sont utilisés et où ils sont installés. Une fois les outils OpenSSL CLI installés, vous pouvez utiliser la commande s_client
:
openssl s_client -connect hostname:port -showcerts
Remplacez le hostname
et le port
par les valeurs appropriées pour le système que vous testez. Une fois exécutée, cette commande tente de créer une connexion SSL, puis affiche les certificats envoyés par le serveur.
Certaines bases de données ont une poignée de main TLS personnalisée, et openssl prend directement en charge certaines d’entre elles. Dans la dernière version, il s’agit de postgres et de mysql. Si vous vous connectez à une base de données compatible avec 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). La documentation complète d’OpenSSL s_client est disponible 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