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 / server / Perguntas / 1073493
Accepted
UncleBob
UncleBob
Asked: 2021-08-05 01:42:04 +0800 CST2021-08-05 01:42:04 +0800 CST 2021-08-05 01:42:04 +0800 CST

Não é possível se conectar ao Amazon RDS com TLSv1.2

  • 772

Configurei uma nova máquina com o Ubuntu 20 e descobri que não conseguia mais me conectar aos meus bancos de dados RDS.

O aplicativo spring-boot que deveria se conectar ao ambiente de desenvolvimento lança a seguinte exceção:
javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)

Então eu desenterrei mySql workbench e tentei com isso. Isso resultou neste erro:
ssl_choose_client_version:unsupported protocol

Procurar por isso me ensinou que o Ubuntu 20 tinha o TLSv1.2 definido como a versão mínima do TLS e que esse erro ocorre se o seu servidor MySQL não o suporta (a partir daqui: https://askubuntu.com/questions/1193629/why -mysql-workbench-8-x-errors-out-with-an-ssl-connection-error-choose-client-v ). Eu tentei o workbench com o SSL desativado e, com certeza, ele poderia estabelecer a conexão.

O problema óbvio disso é que este é o Amazon RDS ... TLS 1.2 é a única versão que não pode ser desabilitada, pois é a versão usada internamente, conforme apontado aqui: https://docs.aws.amazon.com /AmazonRDS/latest/UserGuide/SQLServer.Ciphers.html

Então, realmente, não deve haver um problema. Eu estava começando a duvidar se a versão TLS era realmente o problema. Mas como eu não tinha outras pistas, segui o livro de receitas na resposta aqui para reconfigurar meu openssl local para permitir a versão mínima do TLS 1 e fazer o downgrade do nível de segurança: https://askubuntu.com/questions/1233186/ubuntu- 20-04-how-to-set-lower-ssl-security-level

E você não sabe, Workbench agora conectado com SSL definido como obrigatório. Spring-Boot ainda não, acho que tenho que configurar isso em outro lugar para obter o memorando. Mas em vez de perder tempo com isso, prefiro resolver o problema real , que é que não consigo me conectar por meio do TLSv1.2, enquanto pelo que posso dizer, realmente deveria ser capaz. Isso seria muito preferível a rebaixar minha segurança. Tentei renovar o certificado do banco de dados caso esse possa ser o problema, mas o console de gerenciamento não encontrou nada de errado com o certificado e aparentemente não me permite substituí-lo se não for necessário. Então, estou um pouco sem ideias sobre o que tentar a seguir.

ssl amazon-rds
  • 1 1 respostas
  • 2438 Views

1 respostas

  • Voted
  1. Best Answer
    UncleBob
    2021-08-05T06:53:13+08:002021-08-05T06:53:13+08:00

    Acontece que o suporte a TLS depende da versão exata do mecanismo de banco de dados que você está usando no RDS. O Aurora mySQL 5.6 tem suporte apenas para TLSv1.0 até a versão 1.23.1, quando o TLSv1.1 e 1.2 ficam disponíveis. Nossa versão era 1.22.alguma coisa, então tive que atualizar o motor.

    Mesmo assim , não funcionará, porque o Ubuntu 20 também impõe um comprimento mínimo de chave dhe de 2048 bits, que o Aurora mysql 5.6 simplesmente não entrega e, pelo que posso dizer, isso não pode ser alterado. Você encontrará documentação para parâmetros de banco de dados que podem ser usados ​​para alterar o tamanho da chave Diffie-Hellman, mas acontece que eles são apenas para SqlServer, não MySQL. Portanto, você ainda precisa aplicar as alterações ao seu openssl.cnf conforme descrito na resposta aceita aqui: https://askubuntu.com/questions/1233186/ubuntu-20-04-how-to-set-lower-ssl -security-level Isso altera seu SECLEVEL para 1, então openssl aceitará as chaves DHE mais curtas.

    Mesmo assim, meus aplicativos de inicialização por mola não se conectavam, embora o workbench agora o fizesse. Isso ocorre porque o JDBC não diz ao servidor que ele pode fazer TLSv1.2 embora possa totalmente (decisão estranha, essa), então o servidor nunca tentará enviar um handshake 1.2 mesmo que pudesse.

    Para dizer ao JDBC para realmente usar o TLSv1.2, você precisa anexá-lo à string de conexão:

    jdbc:myslq://<host>/<db>?enabledTLSProtocols=TLSv1.2
    

    Agora tudo se conecta.

    Eu adoraria fazer o aurora entregar uma chave mais longa em vez de diminuir a segurança do Ubuntu, mas parece não haver maneira. Se alguém souber de um, por favor me avise.

    • 3

relate perguntas

Sidebar

Stats

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

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

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