AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1866524
Accepted
Mike
Mike
Asked: 2024-12-20 07:09:20 +0800 CST2024-12-20 07:09:20 +0800 CST 2024-12-20 07:09:20 +0800 CST

Por que estamos recebendo um erro de metabase ao conectar ao SQL Server 2016 no Red Hat Enterprise Linux 9, mas não no Red Hat Enterprise Linux 7?

  • 772

Percebemos que um aplicativo Java, o Metabase, está apresentando um erro ao se conectar ao SQL Server 2016 e, com a mesma configuração, o problema acontece no Red Hat Enterprise Linux 9, mas não no Red Hat Enterprise Linux 7. Então, esperamos obter ajuda para confirmar se o problema é devido ao sistema operacional e corrigi-lo.

História mais longa:

Estamos testando uma instância atualizada do Metabase, e os componentes atualizados incluem

  • Sistema operacional Red Hat Enterprise Linux (de v7 a v9),
  • Java (de 11 a 21) e
  • Software Metabase (da v0.32.x até a atual v0.50.x).

E notamos o seguinte erro na instância atualizada ao conectar a uma fonte de dados do SQL Server 2016.

A propriedade "encrypt" está definida como "false" e a propriedade "trustServerCertificate" está definida como "false", mas o driver não conseguiu estabelecer uma conexão segura com o SQL Server usando a criptografia Secure Sockets Layer (SSL): Erro: Os certificados não estão em conformidade com as restrições do algoritmo. ClientConnectionId:6bf62750-d5c4-49c5-8ada-4253d8b55055

Suspeitamos que o erro esteja relacionado ao comportamento do sistema do Red Hat Enterprise Linux 9, portanto, projetamos o seguinte caso de teste simplificado para dar suporte ao nosso ponto:

Configuração de teste:

  • Java openjdk v11.0.23
  • metabase.jar v0.32.5

Iniciamos o aplicativo chamando o comando java -jar metabase.jar, para que ele inicie uma nova instância de demonstração do Metabase em execução no H2 local para o banco de dados do aplicativo.

Em seguida, tentamos adicionar uma fonte de dados do SQL Server 2016 configurada com criptografia não necessária.

Executando no Red Hat Enterprise Linux 7, o teste acima foi bem-sucedido. No entanto, executando no Red Hat Enterprise Linux 9, ele falhou com os seguintes eventos de log, observe o timestamp de 12-19 14:58:44:

12-19 14:58:09 DEBUG middleware.log :: GET /api/setup/admin_checklist 200 14 ms (10 DB calls) Jetty threads: 8/50 (3 busy, 5 idle, 0 queued) (48 total active threads)
12-19 14:58:44 INFO metabase.driver :: Initializing driver :sqlserver...
12-19 14:58:44 DEBUG plugins.classloader :: Setting current thread context classloader to shared classloader clojure.lang.DynamicClassLoader@1dc9fc0...
12-19 14:58:44 INFO plugins.classloader :: Added URL file:/data/metabase-test/v0.32.5/plugins/sqlserver.metabase-driver.jar to classpath
12-19 14:58:44 DEBUG plugins.init-steps :: Loading plugin namespace metabase.driver.sqlserver...
12-19 14:58:44 INFO metabase.driver :: Registered driver :sqlserver (parents: :sql-jdbc) 🚚
12-19 14:58:44 DEBUG plugins.jdbc-proxy :: Registering JDBC proxy driver for class com.microsoft.sqlserver.jdbc.SQLServerDriver...
Load lazy loading driver :sqlserver took 173 ms
12-19 14:58:44 DEBUG middleware.log :: POST /api/database 400 314 ms (0 DB calls) Jetty threads: 8/50 (3 busy, 4 idle, 0 queued) (45 total active threads)
{:valid false,
 :dbname
 "com.microsoft.sqlserver.jdbc.SQLServerException: The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: \"Certificates do not conform to algorithm constraints\". ClientConnectionId:ca179b99-b3b3-4351-a0de-736b7dc8e765",
 :message
 "com.microsoft.sqlserver.jdbc.SQLServerException: The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: \"Certificates do not conform to algorithm constraints\". ClientConnectionId:ca179b99-b3b3-4351-a0de-736b7dc8e765"}

12-19 14:58:44 DEBUG middleware.log :: GET /api/database 200 5 ms (3 DB calls) Jetty threads: 8/50 (3 busy, 4 idle, 0 queued) (45 total active threads)
12-19 15:00:00 INFO task. Send-pulses :: Sending scheduled pulses...

Gostaríamos de saber se esquecemos de algo em relação ao novo sistema operacional e agradecemos muito quaisquer dicas e sugestões.

Informações adicionais

Sobre o TLS:

O SQL Server 2016 em teste não tem certificado SSL instalado e está configurado como "criptografia não necessária".

  • Verificamos o host do Windows no contexto de "SQLServerManager13.msc > SQL Server Network Configuration > Protocols for MSSQLSERVER > Properties". O "Force Encryption" é No, e não há nada na aba "Certificate".
  • O comando openssl s_clientproduz os seguintes resultados:
    # openssl s_client -connect <sql-server-hostname>:1433 -showcerts
    Connecting to xxx.xxx.xxx.xxx
    CONNECTED(00000003)
    001EA5D0C87F0000:error:0A000126:SSL routines::unexpected eof while reading:ssl/record/rec_layer_s3.c:689:
    ---
    no peer certificate available
    ---
    No client certificate CA names sent
    ---
    SSL handshake has read 0 bytes and written 309 bytes
    Verification: OK
    ---
    New, (NONE), Cipher is (NONE)
    This TLS version forbids renegotiation.
    Compression: NONE
    Expansion: NONE
    No ALPN negotiated
    Early data was not sent
    Verify return code: 0 (ok)
    ---
    

Sobre a versão do SQL Server:

Com tudo igual para executar o Metabase, testamos adicionar uma fonte de dados no SQL Server 2022 em vez do 2016, e o teste foi aprovado no RHEL9.

Sobre as diferenças em java. Security:

Recuperamos os java.securityarquivos do RHEL7 e do RHEL9, depois filtramos os comentários e espaços em branco para obter o conteúdo líquido. Comparando os dois arquivos, obtivemos uma série de diferenças abaixo.

java
  • 1 1 respostas
  • 59 Views

1 respostas

  • Voted
  1. Best Answer
    Mike
    2024-12-24T02:59:59+08:002024-12-24T02:59:59+08:00

    O java.securityarquivo no RHEL9 não oferece mais suporte aos algoritmos antigos em nosso SQL Server 2016, então a melhor prática seria atualizar o SQL Server.

    • 1

relate perguntas

  • A geração do Apache Maven falha ao criar o projeto usando o comando fornecido no site oficial

  • ResourceException: o nome da classe está errado ou o caminho de classe não está definido para MysqlDataSource

  • Não é possível compilar o Java após a reinstalação do Visual Studio Code: “NameOfMyClass foi compilado por uma versão mais recente do Java Runtime”

  • jEnv está mexendo com o VSCode Java Extension Pack

  • O teste instrumentado do Android Studio falha com "DerInputStream.getLength(): lengthTag=109, muito grande."

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como posso reduzir o consumo do processo `vmmem`?

    • 11 respostas
  • Marko Smith

    Baixar vídeo do Microsoft Stream

    • 4 respostas
  • Marko Smith

    O Google Chrome DevTools falhou ao analisar o SourceMap: chrome-extension

    • 6 respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Martin Hope
    Vickel O Firefox não permite mais colar no WhatsApp web? 2023-08-18 05:04:35 +0800 CST
  • Martin Hope
    Saaru Lindestøkke Por que os arquivos tar.xz são 15x menores ao usar a biblioteca tar do Python em comparação com o tar do macOS? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh Como posso reduzir o consumo do processo `vmmem`? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Pesquisa do Windows 10 não está carregando, mostrando janela em branco 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve