Konfigurera SSL för JDBC-anslutningar
Många JDBC-kopplingar stöder envägs (standard) SSL, och vissa stöder tvåvägs SSL. För de som inte har uttryckligt stöd för att använda Tableau, kanske du kan aktivera det med anpassning. Det finns olika sätt på vilka SSL kan konfigureras för båda typerna, och du kan använda den metod som är mest logisk för din miljö.
Obs! För Tableau Cloud, om ditt servercertifikat inte är signerat av en gemensam offentlig rot-CA och du inte har möjlighet att bädda in certifikatet, kan du använda Tableau Bridge. Detta gör att du kan konfigurera certifikat och privata nycklar efter behov.
Envägs-SSL för JDBC-anslutningar
Om du använder en vanlig (envägs) SSL med en JDBC-baserad koppling och du har självsignerade certifikat eller certifikat som signeras av en icke-offentlig certifikatutfärdare (CA), måste du konfigurera förtroende för certifikatet.
Med Tableau kan du konfigurera envägs-SSL för JDBC-anslutningar med hjälp av en av följande metoder:
- Bädda in ett certifikat
- Installera ett certifikat i systemets förtroendearkiv
- Använda anpassade drivrutinsegenskaper
Bädda in ett certifikat
Vissa kopplingar har stöd för inbäddning av certifikat i arbetsboken eller datakällan. Om detta alternativ är tillgängligt kan du använda Tableau Desktop till att bädda in CA-certifikatet.
Installera ett certifikat i systemets förtroendearkiv
Om inbäddning inte är tillgänglig behöver du ett annat sätt att konfigurera förtroende. Det kan vara lättare att göra detta än att bädda in certifikatet i alla arbetsböcker. Instruktioner ingår för Windows-, Mac- och Linux-plattformar nedan.
Standardplatsen för förtroendearkivet för Tableau Server är:
/opt/tableau/tableau_server/packages/repository.20233.24.0514.1218/jre/lib/security/cacerts
För Windows:
Du kan installera CA-certifikatet eller det självsignerade certifikatet i Windows förtroendearkiv för rotcertifikatutfärdaren. Java Runtime söker efter betrodda certifikatutfärdare i systemrotens förtroendearkiv. Det söker inte i den mellanliggande certifikatlagringen.
Obs! Om du har installerat rotcertifikatutfärdaren men fortfarande har problem med att skapa anslutningar kan det hända att problemen uppstår på grund av att mellanliggande certifikat saknas. Även om TLS-standarden innebär att servrar måste skicka alla certifikat i kedjan utom rotcertifikatet uppfyller inte alla servrar detta krav. Om din server inte skickar de mellanliggande certifikaten kan du antingen fixa servern så att den vidarebefordrar mellanliggande certifikat eller installera de mellanliggande certifikaten i rotförtroendearkivet. Alternativt kan du välja att bädda in certifikat i datakällan eller konfigurera ett förtroendearkiv med drivrutinsegenskaper.
- I Windows söker du efter ”certifikat”.
- Välj Hantera datorcertifikat.
- Från menyn Åtgärder väljer du Alla uppgifter och gör sedan något av följande, beroende på vilken Windows-version du har:
- Välj Importera och sedan Lokal dator.
- Välj Hitta certifikat.
- Bläddra för att hitta certifikatfilen.
- Importera till ”Betrodda rotcertifikatutfärdare”.
För Mac:
Du installerar ett anpassat certifikat på en Mac genom att följa dessa steg och importera certifikatet till nyckelringen ”System”.
Obs! Att läsa in certifikat från nyckelring på Mac fungerar för de flesta, men inte alla, drivrutiner. För andra drivrutiner kan du behöva använda en .properties-fil för att konfigurera förtroendearkivet. Mer information finns i Anpassa och justera anslutningar.
- Gå till https://support.apple.com/guide/keychain-access/add-certificates-to-a-keychain-kyca2431/mac(Länken öppnas i ett nytt fönster).
- Importera certifikatet till nyckelringen ”System” (inte ”Systemrötter”).
- Aktivera förtroende på följande sätt:
- I nyckelringsprogrammet högerklickar du på det nya certifikatet.
- Välj Hämta info.
- I dialogrutan öppnar du avsnittet Förtroende och väljer Lita alltid på detta certifikat.
För Linux:
Många Linux-distributioner genererar ett förtroendearkiv i Java-format från systemcertifikaten. Det kan hända att du måste installera Java från pakethanteraren för att den här filen ska skapas.
Detta gör att JRE använder samma certifikat som operativsystemet.
Obs! Tableau Server söker efter den här filen på de vanliga platserna:/etc/ssl/certs/java/cacerts
/etc/pki/java/cacerts
Du kan konfigurera en annan plats genom att köra:
tsm configuration set -k native_api.ConnectivityTrustStore -v <path-to-cacerts> --force-keys
Den här filen ska:
- Innehålla alla betrodda certifikatutfärdare och självsignerade certifikat.
- Endast innehålla offentliga nycklar.
- Vara i JKS-format.
- Vara läsbar av Tableau-opriviligierade användare (”kör som användare”).
- Använda standardlösenordet för JKS ”changeit”.
Mer information om hur du installerar ett anpassat CA-certifikat eller självsignerat certifikat finns i dokumentationen för distributionen. Kör lämpliga kommandon för att generera nyckelarkivet. Exempel:
update-ca-certificates
Använda anpassade drivrutinsegenskaper
Du kan anpassa JDBC-anslutningsalternativen, inklusive platsen för förtroendearkivet, med en .properties-fil. Det är en oformaterad textfil som innehåller nyckelvärdepar för varje anslutningsparameter.
Till exempel används linjer i den här egenskapsfilen för att konfigurera förtroendeinställningar:
javax.net.ssl.trustStore=C:\\My_Folder\\truststore.jks
javax.net.ssl.trustStoreType=JKS
javax.net.ssl.trustStorePassword=password
Obs! Mer information om specifika egenskapsinställningar finns i dokumentationen för drivrutinen.
När du skapar filen och sparar den på rätt plats tillämpas egenskaperna i filen på alla JDBC-anslutningar till samma typ av datakälla.
Om du använder den allmänna kopplingen ”Annan databas (JDBC)” kan du ange en .properties-fil direkt i anslutningsdialogen.
Mer information finns i Anpassa och justera anslutningar(Länken öppnas i ett nytt fönster).
Tvåvägs-SSL för JDBC-anslutningar
Vissa JDBC-anslutningar, som Postgres, kan också konfigureras för att använda tvåvägs SSL-autentisering. Detta kan konfigureras genom att använda en .properties-fil för att ange platser och detaljer för förtroendearkivet och nycklar.
Använd en .properties-fil för att konfigurera klientcertifikat och privat nyckel
Obs! För Tableau Cloud, om du behöver tvåvägs-SSL och kopplingen inte har möjlighet att bädda in nycklarna, måste du använda Tableau Bridge och ställa in SSL-konfigurationen där.
- Ändra .properties-filen så att den återspeglar inställningarna för nyckelarkiv och förtroendearkiv. Använd följande exempel. Se till att ersätta ”Min_Mapp” med platsen för dina filer och ”<lösenord>” med ditt eget lösenord. Sökvägar på OSX och Linux behöver bara ett enda ”/” för att separera.
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 - Spara .properties-filen i lämplig datakälla-mapp, beroende på Tableau-produkten. Om du är osäker, se den fullständiga listan över möjliga kataloger i Anpassa och ställa in en anslutning.
- Om du publicerar till Tableau Server, se till att du installerar .properties-filen, truststore.jks och keystore.jks på rätt platser för varje Tableau Server-nod.
Om du använder den här metoden behöver du inte ladda upp certifikat och nycklar via SSL-dialogrutan. Klicka istället på Kräv SSL. Detta gör att JDBC-kopplingen läser platserna för nyckelarkiv och förtroendearkiv från .properties-filen.
Felsökning
Problem med att använda SSL är ofta relaterade till felaktig certifikatkonfiguration.
Ett sätt att börja hitta källan till problemet är att verifiera vilka certifikat som används och var de är installerade. Med OpenSSL CLI-verktyg installerade kan du använda kommandot s_client
:
openssl s_client -connect hostname:port -showcerts
Ersätt hostname
och port
med rätt värden för systemet som du testar. När det här kommandot körs kommer det att försöka upprätta en SSL-anslutning och sedan visa certifikaten som har skickats från servern.
Vissa databaser har en anpassad TLS-handskakning och openssl har stöd för ett par av dem. Från och med den senaste versionen är de Postgres och MySQL. Om du ansluter till en Postgres- eller MySQL-kompatibel databas och har problem med kommandot ovan kan du försöka använda alternativet -starttls för att aktivera protokollet som används av din databas. Exempel:
openssl s_client -connect hostname:port -showcerts -starttls postgres
Mer information om felsökning med OpenSSL finns i Using OpenSSL s_client commands to test SSL connectivity(Länken öppnas i ett nytt fönster) (på engelska). Du hittar hela dokumentationen för OpenSSL s_client i OpenSSL Documentation(Länken öppnas i ett nytt fönster) (på engelska).
Se även
- Kräv SSL för Oracle JDBC-anslutningar(Länken öppnas i ett nytt fönster) – Installationsanvisningar för att lägga till betrodda SSL-certifikat till Oracle JDBC-anslutningar.
- Oracle JDBC-anslutningar med SSL