Puncte:0

Ajungeți la TimescaleDB cu API-ul Hasura: „Certificatul CA și cheia privată CA nu se potrivesc” când utilizați certificatul de server/cheia privată autosemnată

drapel mx

Urmează ghidul la timecaleDB pentru API-uri cu Autentificare certificat --> 2. Generați chei și certificate pentru noduri:

introduceți descrierea imaginii aici

Pentru o conexiune SSL, aveți nevoie de patru variabile de mediu:

  1. Certificat rădăcină SSL
  2. Certificat SSL (pentru nod)
  3. Cheie SSL (pentru nod)
  4. Parola SSL (pentru nod)

În ceea ce privește 1.), îl obțineți din intervalul de timp când porniți o bază de date ca text sau ca descărcare.

În ceea ce privește 2.), se pare că îl puteți crea singur ca certificat autosemnat cu:

openssl req -out server.csr -new -newkey rsa:2048 -nodes \
-keyout server.key

Am completat „țara” și am sărit peste restul intrărilor doar cu „.” (Acest lucru a fost sugerat pentru omitere). Am completat și „parola de provocare”. Nu sunt sigur cât de relevant este să completați acest lucru și dacă parola este 4.) în lista de mai sus sau nu.

În ceea ce privește punctul 3.), mai întâi trebuie să vă schimbați openssl.cnf, care nu este menționat în ghidul de timp. Asta se face cautand cu unde este openssl.cnf, sau în cazul meu, locația a fost afișată în ieșirea terminalului când parametrii erau încă greșiți acolo, ceea ce a arătat /usr/lib/ssl/openssl.cnf ca locație. Schimbați configurația cu sudo nano /usr/lib/ssl/openssl.cnf astfel încât să fie găsite cheia privată âserver.keyâ și certificatul rădăcină âca.pemâ. După aceasta, rulați comanda ghidului:

openssl ca -extensions v3_intermediate_ca -days 3650 -notext \
-md sha256 -in server.csr -out server.crt

dar apoi, primești eroarea:

Folosind configurația din /usr/lib/ssl/openssl.cnf
Certificatul CA și cheia privată CA nu se potrivesc
140718372717888:error:0B080074:x509 rutine certificate:X509_check_private_key:nepotrivire a valorilor cheii:../crypto/x509/x509_cmp.c:299:

Scriptul creează în continuare server.key și server.csr, dar server.crt necesar nu poate fi creat.

Si doar Cum se convertesc .csr în .cer (sau orice altceva utilizabil pe Windows) pare să mă poată ajuta să obțin server.crt cu:

openssl x509 -req -in server.csr -signkey server.key -out server.crt

Introducând aceasta în setările de conexiune SSL la Hasura:

introduceți descrierea imaginii aici

Dar apoi, când încerc să mă conectez la baza mea de date la scară de timp folosind Hasura, primesc eroarea Lipsește Env Var:

introduceți descrierea imaginii aici

Adăugarea sursei de date a eșuat
Inconsistent object: Missing Env Var: -----BEGIN CERTIFICATE----- MIICoTCCAYkCFAHx6x6kVHJ023/ui0aLoWLqA8RyMA0GCSqGSIb3DQEBCwUAMA0x CzAJBgNVBAYTAkRFMB4XDTIxMDkyMTE4MDQzNVoXDTIxMTAyMTE4MDQzNVowDTEL MAkGA1UEBhMCREUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDWGxsz
â¦
g98irlkrtDn17jIzmZMjlJEQ75P9L78lJMT2eYCFRqVoCm+7x5IUS18UlnGUtwR4 BuIZOg4= -----CERTIFICAT FINAL-----

Bănuiesc că aceasta este doar o problemă ulterioară, deoarece certificatul CA și cheia privată CA evident nu se potrivesc? Prin urmare, întrebarea este în principal despre Certificatul CA și cheia privată CA nu se potrivesc, in schimb.

Scala de răspuns:

În timp ce oferim rădăcina CA, deoarece certificatele SSL pentru fiecare serviciu sunt semnate intern, deci acest lucru vă va permite să creați încredere, dar noi nu furnizați cheile private sau parolele SSL pentru acestea.

Documentația la care v-ați conectat este pentru crearea certificatului de autentificare între noduri într-un mediu cu mai multe noduri on-premise. Nor de timp nu permite autentificarea certificatului, deci nu ar fi relevante aici și nu veți putea combina certificatele cu care le creați CA pe care l-ați descărcat de pe portalul cloud.

Ca o soluție, puteți, de asemenea, să renunțați la criptarea SSL, deoarece este doar opțională:

pur și simplu furnizarea întregului șir de conexiune (cum a fost copiat din fișierul Câmpul URI al serviciului din portalul Timescale Cloud) a fost suficient pentru conectați.

Am testat asta, este adevărat, îl poți rula fără SSL, deși SSL este pregătit pentru a fi folosit. Am folosit rădăcină certificat la SSL-conectați-vă cu psql sau pgAdmin la backend-ul PostgreSQL timescaleDB și au cerut doar certificatul rădăcină SSL --> 1.) de mai sus și nu certificatul CA nodului și cheia privată CA al nodului --> 2.) - 4.) de mai sus.

Conectarea doar cu SSL rădăcină certificatul a funcționat și cu aplicația node-postgres / react-postgres / Express / React, vezi:

Cu toate acestea, setările interfeței de programare a aplicațiilor Hasura solicită patru variabile de mediu de conexiune SSL din lista de sus, cum le pot obține astfel încât să mă pot conecta la Timecale?

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.