Configurare SSL per le connessioni JDBC
Molti connettori JDBC supportano SSL unidirezionale (standard), mentre alcuni supportano SSL bidirezionale. Per coloro che non hanno un supporto esplicito per l'utilizzo di Tableau, è possibile abilitarlo tramite personalizzazione. Esistono diversi modi per configurare SSL per entrambi i tipi ed è possibile utilizzare il metodo più adatto al proprio ambiente.
Nota: per Tableau Cloud, se il certificato del server non è firmato da una CA radice pubblica comune e non hai la possibilità di incorporare il certificato, puoi utilizzare Tableau Bridge. Ciò consentirà di configurare certificati e chiavi private in base alle proprie esigenze.
SSL unidirezionale per le connessioni JDBC
Se utilizzi SSL standard (unidirezionale) con un connettore basato su JDBC e disponi di certificati autofirmati o di certificati firmati da un’autorità di certificazione (CA) non pubblica, dovrai configurare l’attendibilità per il certificato.
Con Tableau puoi configurare l’attendibilità SSL unidirezionale per le connessioni JDBC utilizzando uno dei seguenti metodi:
- Incorporare un certificato
- Installare un certificato nell’archivio attendibilità del sistema
- Utilizzare le proprietà personalizzate del driver
Incorporare un certificato
Alcuni connettori supportano l’incorporamento del certificato nella cartella di lavoro o nell’origine dati. Se questa funzionalità è disponibile, puoi utilizzare Tableau Desktop per incorporare il certificato CA.
Installare un certificato nell’archivio attendibilità del sistema
Se l'incorporamento non è disponibile, sarà necessario un altro modo per configurare l'attendibilità. Inoltre, può essere più semplice eseguire questa operazione che incorporare il certificato in ogni cartella di lavoro. Di seguito sono riportate le istruzioni per le piattaforme Windows, Mac e Linux.
La posizione predefinita dell’archivio attendibilità per Tableau Server è:
/opt/tableau/tableau_server/packages/repository.20233.24.0514.1218/jre/lib/security/cacerts
Per Windows:
Puoi installare il certificato CA o autofirmato nell’archivio attendibilità delle CA radice di Windows. Java Runtime cerca le CA attendibili nell’archivio attendibilità radice del sistema. Non esamina l’archivio di certificati intermedi.
Nota: se hai installato la CA radice, ma riscontri comunque problemi durante la creazione di connessioni, alcuni certificati intermedi potrebbero essere mancanti. Anche se lo standard TLS richiede che i server inviino tutti i certificati nella catena tranne il certificato radice, non tutti i server sono conformi. Se il server non invia i certificati intermedi, puoi correggere il server in modo che inoltri correttamente i certificati intermedi o installare i certificati intermedi nell’archivio attendibilità radice. In alternativa, puoi scegliere di incorporare i certificati nell’origine dati o configurare un archivio attendibilità con le proprietà del driver.
- In Windows, cerca "certificati".
- Seleziona Gestisci i certificati computer.
- Scegli Tutte le attività dal menu Azione, quindi, a seconda della versione di Windows, esegui una di queste operazioni:
- Seleziona Importa, quindi Computer locale.
- Seleziona Trova certificati.
- Individua il file del certificato.
- Importa in "Autorità di certificazione radice attendibili".
Per Mac:
Per installare un certificato personalizzato su un Mac, segui questa procedura per importare il certificato nel portachiavi "Sistema".
Nota: il caricamento dei certificati dal portachiavi su Mac funziona per la maggior parte dei driver, ma non per tutti. Per altri driver potrebbe essere necessario utilizzare un file .properties per configurare l'archivio attendibilità. Per maggiori informazioni, consulta Personalizzare e ottimizzare le connessioni.
- Visita https://support.apple.com/it-it/guide/keychain-access/kyca2431/mac(Il collegamento viene aperto in una nuova finestra).
- Importa il certificato nel portachiavi "Sistema" (non in "Root di sistema").
- Abilita l’attendibilità come segue:
- Nell’app Portachiavi, fai clic con il pulsante destro del mouse sul nuovo certificato.
- Seleziona Ottieni informazioni.
- Nella finestra di dialogo apri la sezione Attendibilità e quindi seleziona Quando si usa questo certificato: Fidati sempre.
Per Linux:
Molte distribuzioni Linux genereranno un archivio attendibilità in formato Java dai certificati di sistema. Potrebbe essere necessario installare Java dal gestore di pacchetti per creare questo file.
Ciò consente a JRE di utilizzare gli stessi certificati del sistema operativo.
Nota: Tableau Server cerca questo file nei percorsi standard:/etc/ssl/certs/java/cacerts
/etc/pki/java/cacerts
Per configurare un percorso diverso, esegui:
tsm configuration set -k native_api.ConnectivityTrustStore -v <path-to-cacerts> --force-keys
Questo file deve:
- Contenere tutte le CA attendibili e i certificati autofirmati.
- Contenere solo chiavi pubbliche.
- Essere in formato JKS.
- Essere leggibile dall’utente senza privilegi di Tableau ("utente Esegui come").
- Usa la password JKS predefinita "changeit"
Per installare una CA personalizzata o un certificato autofirmato, consulta la documentazione relativa alla distribuzione. Esegui i comandi appropriati per generare l’archivio chiavi. Ad esempio:
update-ca-certificates
Utilizzare le proprietà personalizzate del driver
Puoi personalizzare le opzioni di connessione JDBC, incluso il percorso dell’archivio attendibilità, con un file .properties . Si tratta di un file di testo contenente coppie chiave-valore per ogni parametro di connessione.
Ad esempio, le righe in questo file delle proprietà vengono utilizzate per configurare le impostazioni di trust:
javax.net.ssl.trustStore=C:\\My_Folder\\truststore.jks
javax.net.ssl.trustStoreType=JKS
javax.net.ssl.trustStorePassword=password
Nota: per informazioni dettagliate sulle specifiche impostazioni delle proprietà, consulta la documentazione del driver.
Creando il file e salvandolo nel percorso corretto, le proprietà nel file vengono applicate a tutte le connessioni JDBC per lo stesso tipo di origine dati.
Se utilizzi il connettore generico "Altro database (JDBC)", puoi specificare un file .properties direttamente nella finestra di dialogo di connessione.
Per maggiori informazioni, consulta Personalizzare e ottimizzare le connessioni(Il collegamento viene aperto in una nuova finestra).
SSL bidirezionale per le connessioni JDBC
Alcune connessioni JDBC, come Postgres, possono essere configurate anche per utilizzare l'autenticazione SSL bidirezionale. È possibile configurarla utilizzando un file .properties per specificare le posizioni e i dettagli dell'archivio attendibilità e delle chiavi.
Utilizzare un file .properties per configurare il certificato client e la chiave privata
Nota: per Tableau Cloud, se necessiti di SSL bidirezionale e il tuo connettore non ha un'opzione per incorporare le chiavi, dovrai utilizzare Tableau Bridge e impostare al suo interno la configurazione SSL.
- Modifica il file .properties in modo da riflettere le impostazioni dell’archivio chiavi e dell’archivio attendibilità. Utilizza quanto segue come esempio. Assicurati di sostituire "My_Folder" con la posizione dei file e "<password>" con la tua password. I percorsi su OSX e Linux richiedono una sola barra "/" come separatore.
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 - Salva il file .properties nella cartella datasources appropriata, a seconda del prodotto Tableau. Se non sei sicuro, consulta l'elenco completo delle directory possibili in Personalizzare e ottimizzare una connessione.
- Se pubblichi su Tableau Server, assicurati di installare il file .properties, truststore.jks e keystore.jks nelle posizioni corrette per ciascun nodo Tableau Server.
Se utilizzi questo metodo, non devi caricare i certificati e la chiave tramite la finestra di dialogo SSL. Fai invece clic su Richiedi SSL. In questo modo, il connettore JDBC legge i percorsi dell’archivio chiavi e dell’archivio attendibilità dal file .properties.
Risoluzione dei problemi
I problemi di utilizzo di SSL sono spesso dovuti a una configurazione errata dei certificati.
Un modo per iniziare a circoscrivere l’origine del problema è verificare quali certificati sono in uso e dove sono installati. Con gli strumenti dell’interfaccia della riga di comando (CLI, Command Line Interface) OpenSSL installati, puoi utilizzare il comando s_client
:
openssl s_client -connect hostname:port -showcerts
Sostituisci hostname
e port
con i valori corretti per il sistema che stai testando. Quando viene eseguito, questo comando tenta di creare una connessione SSL, quindi visualizza i certificati inviati dal server.
Alcuni database hanno un handshake TLS personalizzato. OpenSSL supporta direttamente due di questi. Nella versione più recente sono Postgres e MySQL. Se ti stai connettendo a un database compatibile con Postgres o MySQL e riscontri problemi con il comando riportato in precedenza, puoi provare a utilizzare l’opzione -starttls per abilitare il protocollo utilizzato dal tuo database. Ad esempio:
openssl s_client -connect hostname:port -showcerts -starttls postgres
Per maggiori informazioni sulla risoluzione dei problemi con OpenSSL, consulta Using OpenSSL s_client commands to test SSL connectivity(Il collegamento viene aperto in una nuova finestra). Puoi trovare la documentazione completa per il comando s_client di OpenSSL nella documentazione di OpenSSL(Il collegamento viene aperto in una nuova finestra).
Vedi anche
- Richiedere SSL per le connessioni JDBC Oracle(Il collegamento viene aperto in una nuova finestra): istruzioni di installazione per l’aggiunta di certificati SSL attendibili alle connessioni Oracle JDBC.
- Connessioni JDBC Oracle con SSL