Configurar SSL para conexões JDBC
Muitos conectores JDBC oferecem suporte a SSL unidirecional (padrão) e alguns oferecem suporte a SSL bidirecional. Para aqueles que não têm suporte explícito usando o Tableau, você pode habilitá-lo com personalização. Há diferentes maneiras de configurar o SSL para ambos os tipos, e você pode usar o método que fizer mais sentido para seu ambiente.
Observação: para o Tableau Cloud, se o certificado do servidor não for assinado por uma CA raiz pública comum e você não tiver a opção de inserir o certificado, poderá usar o Tableau Bridge. Isso permitirá que você configure certificados e chaves privadas conforme necessário.
Conexões SSL unidirecionais para JDBC
Se estiver usando o SSL normal (unidirecional) com um conector baseado em JDBC e tiver certificados autoassinados ou assinados por uma autoridade de certificados não pública (CA), então precisará configurar a confiança do certificado.
Com o Tableau, você pode configurar a confiança de SSL unidirecional para conexões JDBC usando um destes métodos:
- Inserir um certificado
- Instalar um certificado na loja de confiança do sistema
- Usar propriedades personalizadas do driver
Inserir um certificado
Alguns conectores são compatíveis com a inserção do certificado na pasta de trabalho ou na fontes de dados. Se isso estiver disponível, então você pode usar o Tableau Desktop para inserir o certificado CA.
Instalar um certificado na loja de confiança do sistema
Se a inserção não estiver disponível, você precisará de outra maneira de configurar a confiança. Também pode ser mais fácil fazer isso do que inserir o certificado em cada pasta de trabalho. As instruções estão incluídas abaixo para plataformas Windows, Mac e Linux.
O local de armazenamento confiável padrão para Tableau Server é:
/opt/tableau/tableau_server/packages/repository.20233.24.0514.1218/jre/lib/security/cacerts
No Windows:
Instale seu CA ou certificado autoassinado no armazenamento de confiança de CA raiz do Windows. O Java Runtime procura por CAs confiáveis no armazenamento de confiança raiz do sistema. Ele não olha no armazenamento de certificado intermediário.
Observação: se tiver instalado o CA raiz, mas ainda está tendo problemas ao fazer conexões, isso pode ser causado pela falta de certificados intermediários. Embora o padrão TLS exija que os servidores enviem todos os certificados em sua cadeia, exceto o certificado raiz, nem todos os servidores estão em conformidade. Se o servidor não enviar os certificados intermediários, você pode corrigir o servidor para encaminhar corretamente certificados intermediários ou instalar os certificados intermediários no armazenamento de confiança raiz. Como alternativa, opte por inserir certificados na fonte de dados ou configurar um armazenamento de confiança com propriedades do driver.
- No Windows, procure por "certificados".
- Selecione Gerenciar certificados do computador.
- No menu Ação, selecione Todas as tarefase, dependendo da versão do Windows, faça o seguinte:
- Selecione Importar e, em seguida, selecione Máquina local.
- Selecione Encontrar certificados.
- Navegue para encontrar o arquivo de certificado.
- Importe para "Autoridades de certificado raiz confiáveis".
No Mac:
Para instalar um certificado personalizado em um Mac, siga estas etapas para importar o certificado para a chave “Sistema”.
Observação: carregar certificados para a chave no Mac funciona para a maioria, mas não para todos os drivers. Para outros drivers, pode ser necessário usar um arquivo .properties para configurar o armazenamento confiável. Para obter mais informações, consulte Personalização e ajuste das conexões.
- Vá para https://support.apple.com/guide/keychain-access/add-certificates-to-a-keychain-kyca2431/mac(O link abre em nova janela).
- Importe o certificado para a chave "System" (não "Raízes do sistema").
- Habilite a confiança da seguinte forma:
- No aplicativo Keychain, clique com o botão direito do mouse no novo certificado.
- Selecione Obter informações.
- Na caixa de diálogo, abra a seção Confiança e selecione Ao usar este certificado sempre confie.
No Linux:
Muitas distribuições Linux gerarão um armazenamento de confiança no formato Java a partir dos certificados do sistema. Talvez seja necessário instalar o Java a partir do gerenciador de pacotes para que esse arquivo seja criado.
Isso permite que o JRE use os mesmos certificados do sistema operacional.
Observação: o Tableau Server procura esse arquivo nos locais padrão:/etc/ssl/certs/java/cacerts
/etc/pki/java/cacerts
Para configurar um local diferente, execute:
tsm configuration set -k native_api.ConnectivityTrustStore -v <path-to-cacerts> --force-keys
Esse arquivo deve:
- Conter todos os CAs confiáveis e certificados autoassinados.
- Contêm apenas chaves públicas.
- Estar no formato JKS.
- Ser legível pelo usuário sem privilégios do Tableau ("executar como usuário").
- Use a senha JKS "changeit" padrão
Para instalar um CA personalizado ou certificado autoassinado, consulte a documentação da sua distribuição. Execute os comandos apropriados para gerar o armazenamento principal. Por exemplo:
update-ca-certificates
Usar propriedades personalizadas do driver
Você pode personalizar as opções de conexão JDBC, incluindo a localização do armazenamento de confiança, com um arquivo .properties. Este é um arquivo de texto simples contendo pares de valor-chave para cada parâmetro de conexão.
Por exemplo, as linhas neste arquivo de propriedades estão sendo usadas para definir as configurações de confiança:
javax.net.ssl.trustStore=C:\\My_Folder\\truststore.jks
javax.net.ssl.trustStoreType=JKS
javax.net.ssl.trustStorePassword=password
Observação: para obter detalhes sobre configurações específicas da propriedade, consulte a documentação do driver.
Ao criar o arquivo e o salvar no local correto, as propriedades do arquivo são aplicadas a todas as conexões JDBC com o mesmo tipo de origem de dados.
Se você usar o conector genérico "Outro banco de dados (JDBC)", você pode especificar um arquivo .properties diretamente na caixa de diálogo de conexão.
Para obter mais informações, consulte Personalização e ajuste das conexões(O link abre em nova janela).
Conexões SSL bidirecionais para JDBC
Algumas conexões JDBC, como Postgres, também podem ser configuradas para usar autenticação SSL bidirecional. Isso pode ser configurado usando um arquivo .properties para especificar os locais e detalhes do armazenamento confiável e das chaves.
Usar um arquivo .properties para configurar o certificado do cliente e a chave privada
Observação: para o Tableau Cloud, se você precisar de SSL bidirecional e seu conector não tiver uma opção para inserir as chaves, você precisará usar o Tableau Bridge e definir a configuração SSL lá.
- Modifique o arquivo .properties para refletir as configurações de armazenamento de chaves e confiável. Use o seguinte como exemplo. Certifique-se de substituir "My_Folder" pela localização de seus arquivos e "<password>" por sua própria senha. Os caminhos no OSX e no Linux precisam apenas de um único "/" para se separarem.
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 - Salve o arquivo .properties na pasta de fontes de dados apropriada, dependendo do produto Tableau. Se não tiver certeza, veja a lista completa de diretórios possíveis em Personalizar e ajustar uma conexão.
- Se você publicar para Tableau Server, certifique-se de instalar o arquivo .properties, truststore.jks e keystore.jks nos locais corretos para cada nó do Tableau Server.
Se você usar este método, não carregue certificados e chave através da caixa de diálogo SSL. Em vez disso, clique em Exigir SSL. Isso faz com que o conector do JDBC leia os locais da armazenamento de chaves e armazenamento confiável do arquivo .properties.
Solução de problemas
Problemas com o uso de SSL geralmente estão relacionados à configuração incorreta do certificado.
Uma maneira de começar a restringir a origem do problema é verificar quais certificados estão em uso e onde eles estão instalados. Com as ferramentas OpenSSL CLI instaladas, você pode usar o comando s_client
:
openssl s_client -connect hostname:port -showcerts
Substitua hostname
e port
pelos valores adequados para o sistema que você está testando. Quando executado, este comando tentará criar uma conexão SSL e, em seguida, exibirá os certificados enviados do servidor.
Alguns bancos de dados têm um handshake TLS personalizado, e o openssl oferece suporte a alguns deles diretamente. Na versão mais recente, esses são postgres e mysql. Se você estiver se conectando a um banco de dados compatível com postgres ou mysql e tiver problemas com o comando acima, você pode tentar usar a opção -starttls para habilitar o protocolo usado pelo seu banco de dados. Por exemplo:
openssl s_client -connect hostname:port -showcerts -starttls postgres
Para obter mais informações sobre solução de problemas com OpenSSL, consulte Usando comandos OpenSSL s_client para testar a conectividade SSL(O link abre em nova janela). Você pode encontrar a documentação completa do OpenSSL s_client em Documentação do OpenSSL(O link abre em nova janela).
Consulte também
- Exigir SSL para conexões Oracle JDBC(O link abre em nova janela) - Instruções de instalação para adicionar certificados SSL confiáveis às conexões Oracle JDBC.
- Conexões Oracle JDBC com SSL