Puncte:-1

Cum să faci un server SSL HTTPS dinamic în nodejs fără SNICallback

drapel vn

Vreau să fac un server HTTPS SSL dinamic în node.js fără a folosi SNICallback, poate folosind SSL deschis?

Steffen Ullrich avatar
drapel se
*„poate că folosește SSL deschis?”* - nodejs folosește deja biblioteca openssl și SNICallback este, practic, modul în care openssl solicită aplicației să implementeze diferite certificate bazate pe numele serverului dat în TLS ClientHello (adică SNI). Și doar afirmarea *„Vreau să... fără să folosesc SNICallback”* mi se pare o [problema XY](https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) - de unde provine această cerință, adicăce problemă reală dictează că nu puteți utiliza SNICallback?
wesley allison avatar
drapel vn
@SteffenUllrich Am vrut să fie folosit ca un server web de producție normal. Dar am vrut și să pot folosi instrumente precum curl care nu pare să accepte SNICallback. dacă nu greșesc.
Steffen Ullrich avatar
drapel se
curl este un client HTTP și nu un server. Toți clienții moderni (inclusiv curl) trimit numele serverului în ClientHello și astfel lucrează împreună cu SNICallback în nodejs. De asemenea, puteți adăuga pur și simplu diferitele contexte folosind [server.addContext](https://stackoverflow.com/a/25953210/3081018) care în interior utilizează apelul SNI (sau în ceea ce privește API-ul openssl - [SSL_CTX_set_tlsext_servername_callback](https) ://www.openssl.org/docs/man1.1.1/man3/SSL_CTX_set_tlsext_servername_callback.html)). Și dacă numele serverului nu este dat în ClientHello addContext va folosi contextul adăugat cel mai recent.
dave_thompson_085 avatar
drapel jp
(@SteffenUllrich), cu excepția instrumentelor _învechite_, cum ar fi un router sau un dispozitiv încorporat din aproximativ 2012 sau mai devreme, fără actualizări de la producător (de exemplu, a dat faliment) -- atunci s-ar putea să vă lipsească SNI.În acest caz, fie trebuie să obțineți un certificat cu SAN care listează toate numele de server (clienții au suportat în cea mai mare parte SAN încă de la începutul anilor 20) sau _dacă_ numele de server sunt toate subdomenii ale aceluiași domeniu, obțineți un certificat cu un nume _wildcard_ care se potrivește cu toate. În caz contrar, utilizați vechiul mod vechi, servere diferite pe adrese sau porturi IP diferite :-(
wesley allison avatar
drapel vn
@SteffenUllrich ceea ce am avut în vedere era să creez un server HTTPS de la zero folosind net.Server
Steffen Ullrich avatar
drapel se
@wesleyallison: *"crearea unui server HTTPS de la zero folosind net.Server"* - net.Server nu are suport pentru TLS. Pentru asta este modulul TLS - care are și suport pentru SNI. Oricum, toate acestea par să fie în afara subiectului aici, deoarece serverfault.com nu este despre programare - pentru asta este stackoverflow.com.
wesley allison avatar
drapel vn
@SteffenUllrich Îmi pare rău dacă este în afara subiectului. Cred că ceea ce încerc să fac este prea complicat: încerc să refac TLS, cred

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.