Să criptați și să vă exprimați

HTTPS devine o tendință din ce în ce mai puternică a internetului modern. Și este bine, mai ales când clienții interacționează cu serverele și schimbă date confidențiale cu aceștia. Pentru a utiliza HTTPS, aveți nevoie de un certificat SSL utilizat pentru a autentifica serverul. Proiectul Let's Encrypt a simplificat foarte mult procesul de obținere a certificatelor SSL. Înainte de apariția sa, totul era mult mai complicat.







Să criptați și să vă exprimați


Let's Cripp foloseste Certbot de la Electronic Frontier Foundation pentru a automatiza procesul de obtinere a unui certificat SSL. Se acceptă diferite tipuri de servere web (Apache, nginx și altele) care rulează pe OS-uri asemănătoare Unix. Dacă serverul dvs. îndeplinește cerințele de sistem din Let's Encrypt, înseamnă că puteți obține un certificat în mod aproape complet automat. Din păcate, pachetul Node.js / Express.js Let's Encrypt nu suportă. Aceasta înseamnă că în acest caz nu va funcționa automat pentru a primi un certificat de la Certbot. Cu toate acestea, nu totul este pierdut. Folosind Let's Cripp și Certbot, certificatul nu este atât de dificil de obținut manual.

Informații preliminare

Vom folosi Certbot în modul webroot, lansându-l cu opțiunea --webroot. Dacă într-un cuvânt, în acest mod, Certbot va plasa fișierul într-un director al serverului nostru, care ar trebui să fie accesibil prin intermediul protocolului HTTP.

Cu Express, puteți să difuzați directoare care conțin fișiere statice folosind funcția express.static ().

Plan de lucru

Pentru a obține un certificat și pentru a-și menține relevanța, trebuie să trecem prin cinci etape:

  1. Redirecționați porturile corespunzătoare.
  2. Configurați structura directorului pentru fișierele statice și organizați întreținerea acestuia cu Express.
  3. Instalați și rulați Certbot.
  4. Configurați Express pentru a utiliza HTTPS.
  5. Actualizați certificatul Să criptați în 90 de zile.

Mai jos vom descrie acești pași mai detaliat, cu exemple de cod și comenzi.

Port Forwarding

Sunt sigur că acest lucru nu va provoca dificultăți, dar, din motive de exhaustivitate, voi descrie acest pas.

Un URL de server este necesar pentru a finaliza cu succes procesul de verificare. Certbot va folosi această adresă URL pentru a contacta serverul și pentru a prelua datele prin HTTP. Aceasta înseamnă că portul 80 de pe adresa URL furnizată ar trebui să fie accesibil de pe Internet. Nu doare pentru a deschide portul 443, deoarece acesta este portul HTTPS implicit.







Personal, prefer să păstrez serverele Express pe porturi ale căror numere sunt mai mari decât 1024 și apoi, folosind reguli de redirecționare, să transfere traficul de la porturile 80 sau 443 la server. Ca rezultat, nu trebuie să ofer privilegii exprese ridicate, ceea ce este mai sigur, mai ales că serverul web va gestiona traficul potențial periculos.

Dacă te referi la controlul de sănătate al punctului final folosind curl. că totul este în ordine, răspunsul HTTP 200 va indica.

Când rețeaua și serverul sunt pregătite pentru utilizare, puteți continua configurarea întreținerii fișierelor statice.

Întreținerea fișierelor statice

Comanda de mai sus este executată din rădăcina proiectului, presupunând că directorul pentru date statice este numit static.

Acum, după ce Express este configurat să mențină dosarul corect, vom verifica sănătatea sistemului.

Dacă textul "acesta este un test" este trimis în consola, atunci acest pas a fost finalizat cu succes și puteți merge mai departe - pentru a crea un nou certificat SSL.

Primul pas în această etapă este instalarea lui Certbot. Aici puteți găsi instrucțiuni de instalare. Anume, pentru a le vedea, în câmpul "Utiliz", selectați Niciuna dintre cele de mai sus. apoi, în câmpul următor, selectați sistemul de operare. După aceasta, se va afișa comanda pentru instalare. De exemplu, pentru Ubuntu 16.04 (xenial), această comandă arată astfel: sudo apt-get install letsencrypt.

Următorul pas este generarea unui certificat. După cum am menționat deja, vom lansa Certbot în modul webroot. Pentru a face acest lucru, trebuie să îi transmiteți calea care va fi utilizată ca rădăcină a serverului web (folosind comutatorul -w) și numele domeniului (cu opțiunea -d). În acest caz, comanda arată astfel:

Excelent! Aici este, noul nostru certificat SSL. Acum o vom folosi.

Express și HTTPS

În plus, este recomandat fie să copiați fișierele fullchain.pem și privkey.pem în directorul de proiect, fie să creați legături simbolice cu ele. Crearea de link-uri simbolice simplifică procesul de actualizare, dar ce puteți alege este afacerea dvs.

Următorul cod se bazează pe presupunerea că fișierele fullchain.pem și privkey.pem sunt localizate în folderul sslcert din directorul de proiect.

În plus, Helmet.js nu va interfera aici. Acest pachet ajută la protejarea serverului Express prin gestionarea anteturilor HTTP. El, printre altele, adaugă HSTS. elimină antetul X-Powered-By și stabilește antetul X-Frame-Options pentru a proteja împotriva clicurilor.

Instalați-l este foarte simplu:

După instalarea căștii, acesta poate fi folosit în Express ca un strat intermediar de procesare a datelor.

Acum, pentru a vă asigura că totul funcționează, puteți testa serverul cu un test de tip SSL Server.

Actualizarea certificatului

Certificatele Criptare sunt valabile timp de 90 de zile. Este bun sau rău - este inutil să argumentăm, în special având în vedere că procesul de actualizare a unui certificat este foarte simplu. Anume, pentru a reînnoi certificatul, este suficient să executați comanda letencrypt renew and Certbot va emite un certificat nou. Se recomandă automatizarea acestui proces utilizând fie lucrări cron. sau ceva asemănător.

În final, am configurat serverul Express pentru a gestiona fișierele statice pe o anumită cale, a folosit Certbot în modul webroot pentru a crea un certificat de server și a conectat HTTPS la Express utilizând certificatul care tocmai a fost creat. Deși procesul automat de interacțiune cu Certbot nu este disponibil pentru noi, nu este atât de greu să faci totul manual.

Sperăm că, în viitorul apropiat, Certbot va fi echipat cu suport pentru Node.js.

Și cum obțină certificate SSL pentru serverele Express? Utilizați certificatele de la Cusătură?







Articole similare

Trimiteți-le prietenilor: