Puncte:3

Nu se poate conecta la Amazon RDS cu TLSv1.2

drapel in

Am configurat o mașină nouă cu Ubuntu 20 și am constatat că nu mă mai pot conecta la bazele mele de date RDS.

Aplicația spring-boot care trebuia să se conecteze la mediul de dezvoltare face următoarea excepție:
javax.net.ssl.SSLHandshakeException: Niciun protocol adecvat (protocolul este dezactivat sau suitele de criptare sunt inadecvate)

Așa că am scos mySql workbench și am încercat cu asta. Asta a dus la această eroare:
ssl_choose_client_version:protocol neacceptat

Căutând asta m-a învățat că Ubuntu 20 avea TLSv1.2 setat ca versiune TLS minimă și că această eroare se întâmplă dacă serverul tău MySQL nu o acceptă (de aici: https://askubuntu.com/questions/1193629/why-mysql-workbench-8-x-errors-out-with-an-ssl-connection-error-choose-client-v). Am încercat workbench cu SSL dezactivat și, destul de sigur, a putut stabili conexiunea.

Problema evidentă cu această ființă, acesta este Amazon RDS... TLS 1.2 este singura versiune care nu pot fi dezactivat, deoarece este versiunea utilizată intern, așa cum se arată aici: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/SQLServer.Ciphers.html

Deci, într-adevăr, nu ar trebui să fie o problemă. Începeam să mă îndoiesc dacă versiunea TLS era într-adevăr problema. Dar, din moment ce nu aveam alte piste, am urmat cartea de bucate din răspunsul de aici pentru a reconfigura openssl-ul meu local pentru a permite versiunea minimă a TLS 1 și pentru a reduce nivelul de securitate: https://askubuntu.com/questions/1233186/ubuntu-20-04-how-to-set-lower-ssl-security-level

Și nu știi, Workbench acum conectat cu SSL setat la obligatoriu. Spring-Boot încă nu, cred că trebuie să configurez asta în altă parte pentru ca el să primească nota. Dar în loc să pierd timpul cu asta, mai degrabă aș rezolva problema real problemă, și anume că nu mă pot conecta prin TLSv1.2, în timp ce, din câte îmi pot da seama, ar trebui să pot. Ar fi mult de preferat decât să-mi reduc gradul de securitate. Am încercat să reînnoiesc certificatul bazei de date în cazul în care aceasta ar putea fi problema, dar consola de management nu a găsit nimic în neregulă cu certificatul și se pare că nu mă va lăsa să-l înlocuiesc dacă nu am nevoie. Așa că nu mai am idei despre ce să încerc în continuare.

drapel in
Înrudit: https://stackoverflow.com/questions/67246010/the-server-selected-protocol-version-tls10-is-not-accepted-by-client-preferences
Puncte:2
drapel in

Se pare că suportul TLS depinde de versiunea exactă a motorului bazei de date pe care o utilizați pe RDS. Aurora mySQL 5.6 are suport doar pentru TLSv1.0 până la versiunea 1.23.1, moment în care TLSv1.1 și 1.2 devin disponibile. Versiunea noastră era 1.22.ceva, așa că a trebuit să actualizez motorul.

Chiar si atunci nu va funcționa totuși, deoarece Ubuntu 20 impune și o lungime minimă a cheii dhe de 2048 de biți, pe care Aurora mysql 5.6 pur și simplu nu o oferă și, din câte îmi dau seama, acest lucru nu poate fi schimbat. Veți găsi documentație pentru parametrii bazei de date care pot fi utilizați pentru a modifica durata cheii diffie-helman, dar se pare că acestea sunt doar pentru SqlServer, nu pentru MySQL. Deci, trebuie să aplicați modificări openssl.cnf, așa cum este descris în răspunsul acceptat aici: https://askubuntu.com/questions/1233186/ubuntu-20-04-how-to-set-lower-ssl-security-level Acest lucru vă schimbă SECLEVEL la 1, așa că openssl va accepta cheile DHE mai scurte.

Chiar si atunci aplicațiile mele de pornire de primăvară nu s-au conectat, deși workbench acum s-a făcut. Acest lucru se datorează faptului că JDBC nu îi spune serverului că poate face TLSv1.2 deși se poate în totalitate (decizie ciudată, asta), așa că serverul nu va încerca niciodată să trimită o strângere de mână 1.2 chiar dacă ar putea.

Pentru a-i spune JDBC să folosească TLSv1.2, trebuie să-l atașați la șirul de conexiune:

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

Acum totul se leagă.

Mi-ar fi plăcut să fac ca Aurora să ofere o cheie mai lungă, mai degrabă decât să reduc securitatea Ubuntu, dar se pare că nu există nicio modalitate. Daca stie cineva vreunul, va rog sa ma anunte.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.