Konfigurieren von SSL für JDBC-Verbindungen

Viele JDBC-Connectoren unterstützen unidirektionales (Standard-)SSL, und einige unterstützen bidirektionales SSL. Wenn Sie keine explizite Unterstützung für die Verwendung von Tableau haben, können Sie diese möglicherweise durch Anpassung aktivieren. Es gibt unterschiedliche Möglichkeiten, SSL für beide Typen zu konfigurieren, und Sie können die Methode verwenden, die für Ihre Umgebung am sinnvollsten ist.

Hinweis: Wenn Ihr Serverzertifikat für Tableau Cloud nicht von einer gängigen öffentlichen Stammzertifizierungsstelle signiert ist und Sie nicht die Möglichkeit haben, das Zertifikat einzubetten, können Sie Tableau Bridge verwenden. Dadurch können Sie Zertifikate und private Schlüssel nach Bedarf konfigurieren.

Einseitiges SSL für JDBC-Verbindungen

Wenn Sie reguläres (einseitiges) SSL mit einem JDBC-basierten Connector verwenden und über selbstsignierte Zertifikate verfügen oder über Zertifikate, die von einer nicht öffentlichen Zertifizierungsstelle signiert wurden, müssen Sie die Vertrauensstellung für Ihr Zertifikat konfigurieren.

Mit Tableau können Sie durch eine der folgenden Methoden eine einseitige SSL-Vertrauensstellung für JDBC-Verbindungen konfigurieren:

Einbetten eines Zertifikats

Einige Connectoren unterstützen das Einbetten des Zertifikats in die Arbeitsmappe oder die Datenquelle. Wenn dies verfügbar ist, können Sie Tableau Desktop verwenden, um das CA-Zertifikat einzubetten.

Installieren eines Zertifikats im System-Vertrauensspeicher

Wenn die Einbettung nicht verfügbar ist, benötigen Sie eine andere Möglichkeit zum Konfigurieren des Vertrauens. Diese Methode kann auch einfacher sein, als das Zertifikat in jede Arbeitsmappe einzubetten. Anweisungen für die jeweiligen Plattformen Windows, Mac und Linux finden Sie weiter unten.

Der Standardspeicherort des Vertrauensspeichers für Tableau Server Ist:

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

Unter Windows:

Sie können Ihre Zertifizierungsstelle oder Ihr selbstsigniertes Zertifikat im Vertrauensspeicher der Windows-Stammzertifizierungsstelle installieren. Die Java Runtime sucht im Stammvertrauensspeicher des Systems nach vertrauenswürdigen Zertifizierungsstellen. Sie sucht nicht im Zwischenzertifikatspeicher.

Hinweis:Wenn Sie Ihre Stammzertifizierungsstelle installiert haben, aber immer noch Probleme beim Herstellen von Verbindungen auftreten, kann dies durch fehlende Zwischenzertifikate verursacht werden. Der TLS-Standard erfordert zwar, dass Server alle Zertifikate in ihrer Kette mit Ausnahme des Stammzertifikats senden, jedoch sind nicht alle Server kompatibel. Wenn Ihr Server die Zwischenzertifikate nicht sendet, können Sie entweder den Server anpassen, damit er Zwischenzertifikate ordnungsgemäß weiterleitet, oder die Zwischenzertifikate im Stammvertrauensspeicher installieren. Alternativ können Sie Zertifikate in die Datenquelle einbetten oder einen Vertrauensspeicher mit Treibereigenschaften konfigurieren.

  1. Suchen Sie in Windows nach "Zertifikaten".
  2. Wählen Sie Computerzertifikate verwalten aus.
  3. Wählen Sie Alle Aufgaben im Menü Aktion aus, und führen Sie dann je nach Windows-Version eine der folgenden Aktionen aus:
    • Wählen Sie Importieren und dann Lokaler Computer aus.
    • Wählen Sie Zertifikate suchen aus.
  4. Suchen Sie nach Ihrer Zertifikatsdatei.
  5. Importieren Sie diese in die vertrauenswürdigen Stammzertifizierungsstellen.

Auf dem Mac:

Um ein benutzerdefiniertes Zertifikat auf einem Mac zu installieren, führen Sie die folgenden Schritte aus, um das Zertifikat in die Keychain "System" zu importieren.

Hinweis: Das Laden von Zertifikaten aus der Mac-Keychain funktioniert für die meisten, aber nicht für alle Treiber. Für andere Treiber müssen Sie möglicherweise eine .properties-Datei verwenden, um den Vertrauensspeicher zu konfigurieren. Weitere Informationen finden Sie unter Anpassen und Optimieren von Verbindungen.

  1. Gehen Sie zu https://support.apple.com/guide/keychain-access/add-certificates-to-a-keychain-kyca2431/mac(Link wird in neuem Fenster geöffnet).
  2. Importieren Sie das Zertifikat in die Keychain "System" (nicht in "System Roots").
  3. Aktivieren Sie die Vertrauensstellung wie folgt:
    1. Klicken Sie in der Keychain-App mit der rechten Maustaste auf das neue Zertifikat.
    2. Wählen Sie Info abrufen.
    3. Öffnen Sie im Dialogfeld den Bereich Vertrauensstellung, und wählen Sie dann Bei Verwendung dieses Zertifikats immer vertrauen aus.

Unter Linux:

Viele Linux-Distributionen generieren aus den Systemzertifikaten einen Vertrauensspeicher im Java-Format. Möglicherweise müssen Sie Java über den Paket-Manager installieren, damit diese Datei erstellt werden kann.

Dadurch kann die JRE dieselben Zertifikate wie das Betriebssystem verwenden.

Hinweis: Tableau Server sucht diese Datei an den Standardspeicherorten:
/etc/ssl/certs/java/cacerts
/etc/pki/java/cacerts

Führen Sie Folgendes aus, um einen anderen Speicherort zu konfigurieren:

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

Diese Datei sollte:

  • Alle vertrauenswürdigen Zertifizierungsstellen und selbstsignierten Zertifikate enthalten.
  • Nur öffentliche Schlüssel enthalten.
  • Im JKS-Format vorliegen.
  • Für den Tableau-Benutzer ohne entsprechende Zugriffsrechte ("als Benutzer ausführen") lesbar sein.
  • Das JKS-Standardkennwort "changeit" verwenden.

Informationen zum Installieren einer benutzerdefinierten Zertifizierungsstelle oder eines selbstsignierten Zertifikats finden Sie in der Dokumentation zu Ihrer Distribution. Führen Sie die entsprechenden Befehle aus, um den Schlüsselspeicher zu generieren. Beispiel:

update-ca-certificates

Verwenden benutzerdefinierter Treibereigenschaften

Sie können JDBC-Verbindungsoptionen, einschließlich des Speicherorts des Vertrauensspeichers, mit einer Eigenschaftendatei anpassen. Dies ist eine reine Textdatei, die Schlüssel-Wert-Paare für jeden Verbindungsparameter enthält.

Beispielsweise werden Zeilen in dieser Eigenschaftendatei verwendet, um Vertrauenseinstellungen zu konfigurieren:

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

Hinweis: Weitere Informationen zu bestimmten Eigenschafteneinstellungen finden Sie in der Dokumentation zu Ihrem Treiber.

Wenn Sie die Datei erstellen und am richtigen Speicherort ablegen, werden die Eigenschaften in der Datei auf alle JDBC-Verbindungen mit demselben Datenquellentyp angewendet.

Wenn Sie den allgemeinen Connector „Weitere Datenbanken (JDBC)“ verwenden, können Sie eine .properties-Datei direkt im Verbindungsdialogfeld angeben.

Weitere Informationen finden Sie unter Anpassen und Optimieren von Verbindungen(Link wird in neuem Fenster geöffnet).

Bidirektionales SSL für JDBC-Verbindungen

Einige JDBC-Verbindungen, etwa Postgres, können auch für die Verwendung einer bidirektionalen SSL-Authentifizierung konfiguriert werden. Dies kann mithilfe einer .properties-Datei konfiguriert werden, um die Speicherorte und Details des Vertrauensspeichers und der Schlüssel anzugeben.

Verwenden einer .properties-Datei zum Konfigurieren des Client-Zertifikats und des privaten Schlüssels

Hinweis: Wenn Sie für Tableau Cloud bidirektionales SSL benötigen und Ihr Connector keine Option zum Einbetten der Schlüssel hat, müssen Sie Tableau Bridge verwenden und dort die SSL-Konfiguration einrichten.

  1. Ändern Sie die .properties-Datei, um die Einstellungen für den Schlüsselspeicher und den Vertrauensspeicher widerzuspiegeln. Verwenden Sie als Beispiel Folgendes. Ersetzen Sie "My_Folder" durch den Speicherort Ihrer Dateien und "<password>" durch Ihr eigenes Kennwort. Pfade unter OSX und Linux benötigen nur ein einziges "/" als Trennzeichen.

    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. Speichern Sie die .properties-Datei je nach Tableau-Produkt im entsprechenden Datenquellenordner. Wenn Sie sich nicht sicher sind, finden Sie die vollständige Liste der möglichen Verzeichnisse unter Anpassen und Optimieren einer Verbindung.
  3. Wenn Sie in Tableau Server veröffentlichen, stellen Sie sicher, dass Sie die .properties-Datei sowie truststore.jks und keystore.jks an den richtigen Speicherorten für jeden Tableau Server-Knoten installieren.

Dank dieser Methode müssen Sie keine Zertifikate und Schlüssel über das SSL-Dialogfeld hochladen. Klicken Sie stattdessen einfach auf SSL erfordern. Dies bewirkt, dass der Oracle JDBC-Connector die Speicherorte des Schlüssel- und des Vertrauensspeichers aus der .properties-Datei liest.

Problembehebung

Probleme bei der Verwendung von SSL hängen häufig mit einer falschen Zertifikatskonfiguration zusammen.

Eine Möglichkeit, die Ursache des Problems einzugrenzen, besteht darin zu überprüfen, welche Zertifikate verwendet werden und wo sie installiert sind. Wenn OpenSSL CLI-Tools installiert sind, können Sie den Befehl s_client verwenden:

openssl s_client -connect hostname:port -showcerts

Ersetzen Sie hostname und port durch die richtigen Werte für das System, das Sie testen. Bei der Ausführung versucht dieser Befehl, eine SSL-Verbindung herzustellen und dann die vom Server gesendeten Zertifikate anzuzeigen.

Einige Datenbanken verfügen über einen benutzerdefinierten TLS-Handshake und OpenSSL unterstützt einige davon direkt. Zum Stand der neuesten Version sind dies Postgres und MySQL. Wenn Sie eine Verbindung zu einer Postgres- oder MySQL-kompatiblen Datenbank herstellen und Probleme mit dem obigen Befehl haben, können Sie versuchen, mit der Option -starttls das von Ihrer Datenbank verwendete Protokoll zu aktivieren. Beispiel:

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

Weitere Informationen zur Fehlerbehebung mit OpenSSL finden Sie unter Verwenden von OpenSSL s_client-Befehlen zum Testen der SSL-Konnektivität(Link wird in neuem Fenster geöffnet). Die vollständige Dokumentation für OpenSSL s_client finden Sie unter OpenSSL-Dokumentation(Link wird in neuem Fenster geöffnet).

Siehe auch

Vielen Dank für Ihr Feedback!Ihr Feedback wurde erfolgreich übermittelt. Vielen Dank.