Kui teil on veebisait — HTTPS on kohustuslik. See kaitseb kasutajaid, väldib brauseri hoiatusi, lubab kaasaegseid funktsioone (HTTP/2, service worker’id, secure cookies) ja isegi aitab SEO-d. Allpool on lühike ja praktiline selgitus, mis need tehnoloogiad on, miks need olulised on ja kuidas need kiiresti tööle saada.
HTTPS on lihtsalt HTTP, mis jookseb üle krüptitud kanali. Selle krüptitud kanali loob TLS (Transport Layer Security).
Kui brauser ühendub teie saidiga HTTPS-i kaudu, siis ta:
• kontrollib saidi sertifikaati (et kasutaja tõepoolest suhtleb õige saidiga)
• seab üles krüpteeritud kanali (et võrgus keegi ei saaks pealt kuulata ega sisu muuta)
• ja alles seejärel suhtleb HTTP kaudu selles krüpteeritud tunnelis
TLS on läbi aastate arenenud. TLS 1.3, praegune standard, teeb käepigistuse (handshake) kiiremaks ja eemaldab palju vanu ebaturvalisi valikuid. Tulemus: tugevam turvalisus ja natuke kiiremad lehelaadimised.
Kujutage ette TLS 1.3 kui uuendatud käepigistust: see on nii turvalisem kui ka kiirem. See vähendab ringkäskluste arvu ühenduse loomisel, lihtsustab šifrite valikut administraatoritele ja vaikimisi tagab forward secrecy, nii et varasemad sessioonid jäävad turvaliseks ka juhul, kui hiljem privaatvõti kompromiteerub. Kui teie server toetab TLS 1.3, märkate üldiselt vähem viivitusi ühenduse loomisel ja vähem peavalu vanemate haavatavuste tõttu.
Let’s Encrypt on sertifitseerimisasutus (CA), mis väljastab tasuta TLS-sertifikaate ja toetab automatiseeritud väljastamist ning uuendamist ACME protokolli kaudu. Enamikule saitidele on see ideaalne: tasuta, lihtne automatiseerida ja brauserite poolt laialdaselt usaldatud. On olemas limiteeringud (rate limits), seega testimisel kasutage staging-/testkeskkonda; wildcard-sertifikaatide jaoks tuleb teha DNS-01 kontroll (sellega seotud peatükk allpool).
Kiireks ja usaldusväärseks teeks soovitan kasutada Certbot’i (populaarne ACME-klient) ja lasta tal veebiserver automaatselt seadistada. Paljudes Linuxi distributsioonides on lihtsaim viis Certbot paigaldada läbi snap’i. Pärast paigaldust saab üks käsk hankida ja paigaldada sertifikaadi nginx’i jaoks:
sudo certbot --nginx -d example.com -d www.example.com
Certbot kontrollib automaatselt domeeni omandiõigust, salvestab sertifikaadid kataloogi /etc/letsencrypt/live/… ja (kui nõustute) uuendab nginx’i konfiguratsiooni, et lubada TLS. Certbot seab ka systemd-taimeri sertifikaatide automaatseks uuendamiseks; kontrollige uuendamist käsuga sudo certbot renew --dry-run, et veenduda, et kõik töötab.
Kui vajate wildcard-sertifikaati (for *.example.com), kasutage DNS-01 kontrolli — see tähendab TXT-kirje lisamist DNS-i või DNS-provideri API automatiseerimist. Paljud DNS-providerid pakuvad pluginaid, mis seda turvaliselt automatiseerivad.
Kas soovite, et me selle teie jaoks seadistaksime? Pakume VPS-i ja veebi turvalahenduste seadistust: HTTPS, TLS 1.3, Let’s Encrypt, nginx/Apache kõvendamine ja jätkuv tugi.
TLS 1.3 kasutamiseks vajate suhteliselt uut OpenSSL-i ja kaasaegset nginx/Apache versiooni. Serveriblokis lülitage sisse TLS 1.3 ja mõistlikud vaikeseaded: eelistage moderne šifreid, lubage HTTP/2, lülitage sisse OCSP stapling ja lisage HSTS alles siis, kui olete veendunud, et HTTPS töötab kõigi radade peal. OCSP stapling kiirendab sertifikaadi kontrolli klientide jaoks ja parandab privaatsust; HSTS ütleb brauseritele, et teie domeeni puhul tuleb alati kasutada HTTPS-i (olete ettevaatlik preload-valikuga — see on praktiliselt pöördumatu avaldus, kui selle listi panete).
Minimaalne nginx-fragment võiks sisuliselt välja näha nii (kohandage oma süsteemi ja versioonide järgi):
listen 443 ssl http2;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_stapling on;
ssl_stapling_verify on;
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;
Kui te pole kindel šifrite valikus — kasutage Mozilla konfiguratsioonigeneraatorit alguspunktina ja testige SSL Labsiga.
Pärast TLS-i sisselülitamis:
• Avage sait brauseris ja vaadake turvapaneeli (security panel), et näha, milline TLS-versioon ja sertifikaadi ahel on kasutusel.
• Käivitage openssl s_client -connect example.com:443 -tls1_3, et kinnitada TLS 1.3 toimimist.
• Käivitage SSL Labs (Qualys) sügav avalik skann — see näitab protokollide toetust, ahela probleeme, HSTS ja OCSP stapling staatust.
Ärge lülitage HSTS-i koos preload-iga sisse enne, kui kõik (ka alamdomeenid ja ümbersuunamised) on õigesti seadistatud — pärast preload-listi esitamist on tagasipöördumine keeruline. Testide jaoks kasutage Let’s Encrypti staging (testkeskkonda), et mitte tarbida tootmise rate-limiteid. Automatiseerige uuendused ja jälgige neid: certbot renew --dry-run ajastatud cron’i või CI-s annab teile kindlustunde. Wildcard-sertifikaatide puhul hoidke DNS-provideri API-võtmeid turvaliselt ja rotige/värskendage neid vajadusel.
Käsitlege HTTPS-i kui osa oma deployment-pipeline’ist: uuendage OpenSSL/nginx, hankige sertifikaadid automaatselt, testige uuendusi ja integreerige verifikatsioonid deploy’i. See on väike ühekordne investeering, mis toob pidevat kasu: turvalisemad kasutajad, vähem brauseri hoiatusi, ligipääs kaasaegsetele API-dele ja väikene jõudluse paranemine tänu TLS 1.3-le.
Võtke meiega ühendust, et arutada, kuidas korrektselt seadistatud HTTPS — koos TLS 1.3 ja automatiseeritud Let’s Encrypt-sertifikaatidega — võib muuta teie veebilehe turvalisemaks, usaldusväärsemaks ja valmis kasvuks.
Sotsiaalmeedia