SSL configureren voor JDBC-verbindingen
Veel JDBC-connectors ondersteunen eenrichtings-SSL (standaard), terwijl sommige connectors ook tweerichtings-SSL ondersteunen. Mogelijk kunt u connectors die geen expliciete ondersteuning bieden voor het gebruik van Tableau, alsnog inschakelen met aanpassingen. SSL kan op verschillende manieren worden geconfigureerd voor beide typen. Gebruik de methode die het meest geschikt is voor uw omgeving.
Opmerking: Voor Tableau Cloud kunt u Tableau Bridge gebruiken als uw servercertificaat niet is ondertekend door een algemene openbare root-CA en u het certificaat niet kunt insluiten. Hiermee kunt u certificaten en persoonlijke sleutels naar wens configureren.
Eenzijdige SSL voor JDBC-verbindingen
Als u normale (eenzijdige) SSL met een JDBC-gebaseerde connector gebruikt en u beschikt over zelfondertekende certificaten of certificaten die zijn ondertekend door een niet-openbare certificeringsinstantie (CA), moet u het vertrouwen voor uw certificaat configureren.
Met Tableau kunt u eenzijdige SSL voor JDBC-verbindingen configureren met een van de volgende methoden:
- Een certificaat insluiten
- Een certificaat in de vertrouwenssysteemopslag installeren
- Aangepaste stuurprogramma-eigenschappen gebruiken
Een certificaat insluiten
Sommige connectors ondersteunen het insluiten van het certificaat in de werkmap of databron. Als dit beschikbaar is, kunt u Tableau Desktop gebruiken om het CA-certificaat in te sluiten.
Een certificaat in de vertrouwenssysteemopslag installeren
Als insluiten niet beschikbaar is, hebt u een andere manier nodig om vertrouwen te configureren. Het kan ook zijn dat dit gemakkelijker is dan het certificaat in elke werkmap in te sluiten. Hieronder vindt u instructies voor Windows-, Mac- en Linux-platforms.
De standaardlocatie voor de Tableau Server-vertrouwensopslag is:
/opt/tableau/tableau_server/packages/repository.20233.24.0514.1218/jre/lib/security/cacerts
Voor Windows:
U kunt uw CA of zelfondertekende certificaat installeren in de Windows CA-root-vertrouwensopslag. Java Runtime zoekt naar vertrouwde CA's in de systeemroot-vertrouwensopslag. De tussenliggende certificaatopslag wordt niet gecontroleerd.
Opmerking: als u uw root-CA hebt geïnstalleerd, maar nog steeds problemen hebt met het maken van verbindingen, kan dit komen doordat er tussenliggende certificaten ontbreken. Hoewel de TLS-standaard vereist dat servers alle certificaten in hun keten verzenden behalve het rootcertificaat, voldoen niet alle servers hieraan. Als uw server de tussenliggende certificaten niet verzendt, kunt u de server zodanig instellen dat deze de tussenliggende certificaten correct doorstuurt, of de tussenliggende certificaten in de root-vertrouwensopslag installeren. U kunt er ook voor kiezen om certificaten in te sluiten in de databron, of een vertrouwensopslag met stuurprogramma-eigenschappen te configureren.
- Zoek in Windows naar 'certificaten'.
- Selecteer Computercertificaten beheren.
- Selecteer in het menu Actie de optie Alle taken en voer vervolgens, afhankelijk van de Windows-versie, een van de volgende handelingen uit:
- Selecteer Importeren en selecteer vervolgens Lokale machine.
- Selecteer Certificaten zoeken.
- Blader om uw certificaatbestand te vinden.
- Importeer het in Trusted Root Certificate Authorities.
Voor Mac:
Als u een aangepast certificaat op een Mac wilt installeren, volgt u deze stappen om het certificaat te importeren in de sleutelketen Systeem.
Opmerking: het laden van certificaten vanuit de sleutelketen op een Mac werkt voor de meeste stuurprogramma's, maar niet voor allemaal. Voor andere stuurprogramma's moet u mogelijk een .properties-bestand gebruiken om de vertrouwensopslag te configureren. Zie Verbindingen aanpassen en afstemmen voor meer informatie.
- Ga naar https://support.apple.com/guide/keychain-access/add-certificates-to-a-keychain-kyca2431/mac(Link wordt in een nieuw venster geopend).
- Importeer het certificaat in de sleutelketen Systeem (niet in Systeemroots).
- U kunt vertrouwen als volgt inschakelen:
- Klik in de app Sleutelketen met de rechtermuisknop op het nieuwe certificaat.
- Selecteer Info verkrijgen.
- Open in het dialoogvenster de sectie Vertrouwen en selecteer vervolgens Altijd vertrouwen bij gebruik van dit certificaat.
Voor Linux:
Veel Linux-distributies genereren op basis van de systeemcertificaten een vertrouwensopslag in Java-indeling. Mogelijk moet u Java installeren via de pakketbeheerder om dit bestand te kunnen maken.
Hierdoor kan de JRE dezelfde certificaten gebruiken als het besturingssysteem.
Opmerking: Tableau Server zoekt naar dit bestand op de standaardlocaties:/etc/ssl/certs/java/cacerts
/etc/pki/java/cacerts
Als u een andere locatie wilt configureren, voert u het volgende uit:
tsm configuration set -k native_api.ConnectivityTrustStore -v <path-to-cacerts> --force-keys
Dit bestand moet:
- Alle vertrouwde CA's en zelfondertekende certificaten bevatten.
- Alleen openbare sleutels bevatten.
- De JKS-indeling gebruiken.
- Leesbaar zijn voor Tableau-gebruikers zonder privileges ('uitvoeren als gebruiker').
- Het standaard JKS-wachtwoord 'changeit' gebruiken.
Raadpleeg de documentatie voor uw distributie om een aangepaste CA of zelfondertekend certificaat te installeren. Voer de juiste opdrachten uit om de KeyStore te genereren. Bijvoorbeeld:
update-ca-certificates
Aangepaste stuurprogramma-eigenschappen gebruiken
U kunt de JDBC-verbindingsopties, waaronder de locatie van de vertrouwensopslag, aanpassen met een .properties-bestand. Dit is een plattetekstbestand met sleutel-waardeparen voor elke verbindingsparameter.
In dit eigenschappenbestand worden bijvoorbeeld regels gebruikt om vertrouwensinstellingen te configureren:
javax.net.ssl.trustStore=C:\\My_Folder\\truststore.jks
javax.net.ssl.trustStoreType=JKS
javax.net.ssl.trustStorePassword=wachtwoord
Opmerking: Raadpleeg de documentatie bij uw stuurprogramma voor meer informatie over specifieke eigenschapsinstellingen.
Wanneer u het bestand maakt en op de juiste locatie opslaat, worden de eigenschappen in het bestand toegepast op alle JDBC-verbindingen met hetzelfde databrontype.
Als u de generieke connector Andere database (JDBC) gebruikt, kunt u rechtstreeks in het verbindingsdialoogvenster een eigenschappenbestand opgeven.
Zie Verbindingen aanpassen en afstemmen(Link wordt in een nieuw venster geopend) voor meer informatie.
Tweerichtings-SSL voor JDBC-verbindingen
Sommige JDBC-verbindingen, zoals Postgres, kunnen ook worden geconfigureerd voor gebruik van tweerichtings-SSL-verificatie. U kunt dit configureren met behulp van een .properties-bestand om de locaties en details van de vertrouwensopslag en sleutels op te geven.
Een .properties-bestand gebruiken om het clientcertificaat en de privésleutel te configureren
Opmerking: Als u voor Tableau Cloud tweerichtings-SSL nodig hebt en uw connector geen optie biedt om de sleutels in te sluiten, moet u Tableau Bridge gebruiken en daar de SSL-configuratie instellen.
- Wijzig het .properties-bestand zodanig dat de instellingen voor de sleutelopslag en de vertrouwensopslag overeenkomen. Gebruik het volgende als voorbeeld. Vervang My_Folder door de locatie van uw bestanden en vervang <password> door uw wachtwoord. Paden op OSX en Linux hebben slechts één / nodig als scheidingsteken.
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 - Sla het .properties-bestand op in de juiste databronmap, afhankelijk van het Tableau-product. Als u het niet zeker weet, bekijk dan de volledige lijst met mogelijke mappen in Een verbinding aanpassen en afstemmen.
- Als u publiceert naar Tableau Server, moet u het bestand .properties samen met truststore.jks en keystore.jks op de juiste locaties installeren voor elk Tableau Server-knooppunt.
Als u deze methode gebruikt, hoeft u geen certificaten en sleutels te uploaden via het SSL-dialoogvenster. Klik in plaats daarvan gewoon op SSL vereisen. Hierdoor leest JDBC-connector de locaties van de sleutelopslag en de vertrouwensopslag uit het .properties-bestand.
Problemen oplossen
Problemen met het gebruik van SSL worden vaak veroorzaakt door een onjuiste certificaatconfiguratie.
Een manier om de oorzaak van het probleem te achterhalen, is door te controleren welke certificaten er worden gebruikt en waar ze zijn geïnstalleerd. Zodra de OpenSSL CLI-tools zijn geïnstalleerd, kunt u de opdracht s_client
gebruiken:
openssl s_client -connect hostname:port -showcerts
Vervang hostname
en port
met de juiste waarden voor het systeem dat u test. Wanneer u deze opdracht uitvoert, wordt een SSL-verbinding ingesteld en worden de certificaten weergegeven die door de server zijn verzonden.
Sommige databases hebben een aangepaste TLS-handshake. Sommige hiervan worden rechtstreeks ondersteund door openssl. In de nieuwste versie zijn dat postgres en mysql. Als u verbinding maakt met een postgres- of mysql-compatibele database en u ondervindt problemen met de bovenstaande opdracht, kunt u proberen de optie -starttls te gebruiken om het protocol in te schakelen dat door uw database wordt gebruikt. Bijvoorbeeld:
openssl s_client -connect hostname:port -showcerts -starttls postgres
Zie OpenSSL s_client-opdrachten gebruiken om SSL-connectiviteit te testen(Link wordt in een nieuw venster geopend) voor meer informatie over het oplossen van problemen met OpenSSL. De volledige documentatie voor OpenSSL s_client vindt u in OpenSSL-documentatie(Link wordt in een nieuw venster geopend).
Zie ook
- SSL vereisen voor Oracle JDBC-verbindingen(Link wordt in een nieuw venster geopend) - installatie-instructies voor het toevoegen van vertrouwde SSL-certificaten aan Oracle JDBC-verbindingen.
- Oracle JDBC-verbindingen met SSL