Enamik veebiservereid, näiteks nginx ja apache, kuulavad vaikimisi porti 80 ja vajavad liikluse krüpteerimiseks sertifikaatide kasutamist, enne kui hakkavad sertifikaate kasutama. Hoolimata selle konfigureerimisest suudab veebiserver HTTP-liiklust siiski probleemideta teenindada. Nii et teie veebisaidi külastajad kirjutavad lihtsalt näite http: //.com https: // näite asemel.com ja kogu liiklus jääb nende jaoks krüptimata. Selle probleemi vältimiseks peame konfigureerima HTTP-serverid nii, et nad ise suunaksid kogu HTTP-d HTTPS-i.
Minu seadistus kasutab avaliku IP-ga FQDN-i, seega väljastan LetsEncryptilt SSL-sertifikaadi, mitte ei anna ise allkirjastatut. Sõltuvalt kasutatava veebiserveri tüübist saate seda teha mitmel viisil. Kuid selle üldine voog on selline:
- Hankige allkirjastatud sertifikaat CA-lt. Meie puhul saab see olema LetsEncrypt
- Konfigureerige veebiserver krüptovõtme abil väljuva HTTP-liikluse krüptimiseks pordil 443. See on HTTPS-i vaikeport.
- Suunake kõik 80. pordi (mis on krüptimata HTTP) kõik sissetulevad taotlused pordile 443, võimaldades seeläbi kõigi sissetulevate ühenduste jaoks krüptitud seansse.
Demonstreerime erinevat viisi, kuidas soovida. Esimene on lihtsaim lahendus, mis kasutab Certboti.
1. Lihtsaim viis - Certboti pistikprogrammide kasutamine Nginxi või Apache jaoks
Kasutan selle serveri näitena Nginxi. Kui teil on mõni muu, näiteks Apache või HAProxy, siis külastage lihtsalt Certboti ametlikku lehte ja valige oma operatsioonisüsteem ja valitud veebiserver. Nginxi jaoks Ubuntu 18-s.04, need on käsud, mida vajate.
Esiteks värskendage oma repoindeksit.
$ sudo apt-get värskendus$ sudo apt-get install tarkvara-omadused-ühine
Peaksite lisama nõutavad kolmanda osapoole hoidlad, mida Ubuntu ei pruugi vaikimisi lubada.
$ sudo add-apt-repository universum$ sudo add-apt-hoidla ppa: certbot / certbot
$ sudo apt-get värskendus
Seejärel installige Certboti pakett koos Nginxi pistikprogrammidega, kasutades allolevat käsku.
$ sudo apt-get install certbot python-certbot-nginxJuhised on erinevate platvormide jaoks erinevad ja installige veebiserveri jaoks pluginad, kui need on saadaval. Pistikprogrammid muudavad meie elu palju lihtsamaks seetõttu, et nad saavad veebiserveri konfiguratsioonifaile automaatselt redigeerida, et ka liiklus suunata. Negatiivne külg võib olla see, et kui kasutate juba olemasoleva veebisaidi jaoks väga kohandatud serverit, võib pistikprogramm seal mõned asjad lõhkuda.
Uute veebisaitide või väga lihtsate konfiguratsioonide, näiteks vastupidise puhverserveri puhul töötab pistikprogramm üllatavalt hästi. Sertifikaatide hankimiseks ja liikluse ümbersuunamiseks käivitage lihtsalt järgmine käsk ja järgige erinevaid interaktiivseid valikuid, kui pakett neid läbi juhatab.
$ sudo certbot --nginxVäljund:
certbot - nginxSilumislogi salvestamine kataloogi / var / log / letsencrypt / letsencrypt.logi
Valitud pistikprogrammid: Authenticator nginx, Installer nginx
Sisestage e-posti aadress (kasutatakse kiireloomuliseks uuendamiseks ja turvateateks) (sisestage 'c' t
Tühista): SINU KOHALIK @ näide.KOM
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Palun lugege teenusetingimusi aadressil
https: // laseb krüptida.org / dokumendid / LE-SA-v1.2. november-15-2017.pdf. Sa pead
leppima kokku, et registreeruda ACME serveris aadressil
https: // acme-v02.api.laseb krüptida.org / kataloog
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(G) gree / (C) ancel:
…
Teie konfiguratsioonifailidest ei leitud ühtegi nime. Sisestage oma domeen
nimi (nimed) (komaga ja / või tühikuga eraldatud) (tühistamiseks sisestage „c”): SUBDOMAIN.DOMEENINIMI.TLD
…
Valige, kas suunata HTTP-liiklus HTTPS-ile või mitte, eemaldades HTTP-juurdepääsu.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: ümbersuunamist pole - tehke veebiserveri konfiguratsioonis täiendavaid muudatusi.
2: ümbersuunamine - kõik taotlused suunatakse HTTPS-i juurdepääsu tagamiseks ümber. Valige see
uusi saite või kui olete kindel, et teie sait töötab HTTPS-is. Saate selle tagasi võtta
muutmiseks muutke veebiserveri konfiguratsiooni.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Valige sobiv number [1-2] ja seejärel sisestage sisestusklahv (tühistamiseks vajutage 'c'): 2
Kogu liikluse sadamas 80 suunamine SSL-i kataloogis / etc / nginx / saidid lubatud / vaikimisi
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Palju õnne! Olete https: // SUBDOMAIN edukalt lubanud.DOMEENINIMI.TLD
Peaksite oma konfiguratsiooni testima aadressil:
https: // www.ssllabs.com / ssltest / analüüsima.HTML?d = alamdomeen.DOMEENINIMI.TLD
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TÄHTIS MÄRKUS:
- Palju õnne! Teie sertifikaat ja kett on salvestatud aadressil:
Teie võtmefail on salvestatud aadressil:
/ etc / letsencrypt / live / SUBDOMAIN.DOMEENINIMI.TLD / privkey.pemNagu ülaltoodud näites näidatud, peate sertifikaadi saamiseks esitama ainult kehtiva e-posti aadressi ja oma domeeninime. See sertifikaat on seotud / etc / letsencrypt / live / SUBDOMAIN.DOMEENINIMI.TLD
. Viimane kataloog nimetatakse teie FQDN järgi.
Kõige olulisem aspekt on suvandi Suunamine valimine ja see täidab kogu HTTP-liikluse HTTPS-i suunamise tööd. Kui soovite teada, millised need muudatused on, saate konfigureerimisfaile kontrollida / etc / nginx /
et sellest aru saada.
2. Config-failide muutmine
Kui soovite oma serveri käsitsi konfigureerida sertifikaatide kasutamiseks. Certboti abil sertifikaatide saamiseks käivitage:
$ sudo certbot certonlyNagu varemgi, salvestatakse sertifikaadid kataloogi / etc / letsencrypt / live / yourdomainname.com /
Nüüd saame Nginxi konfigureerida selles kataloogis olevaid faile kasutama. Kõigepealt vabanen Debiani spetsiifilisest kataloogipaigutusest. Vaikelehe saidi konfiguratsioonifail on / etc / nginx / sites-available / default
alamkataloog, millel on sümboli link / etc / nginx / saidil lubatud
.
Kustutan lihtsalt sümboli ja teisaldan konfiguratsioonifaili kataloogi / etc / nginx / conf.d koos a-ga .conf laiendus lihtsalt selleks, et hoida asju üldisemalt ja ka teiste distrode puhul.
$ sudo rm / etc / sites-enabled / default$ sudo mv / etc / nginx / sites-available / default / etc / nginx / conf.d / vaikimisi.konf
$ sudo teenuse nginx taaskäivitamine
Muudan seda vaikimisi konfiguratsioonifaili, et näidata, kuidas TLS on lubatud.
Järgnev on teie vaikimisi konfiguratsioonifaili sisu ilma kommenteeritud väljadeta. Esiletõstetud jaotised on need, mille peate lisama oma serveri konfiguratsioonile, et lubada TLS-i ja selle konfiguratsioonifaili viimane plokk tuvastab, kas skeem kasutab TLS-i või mitte. Kui TLS-i ei kasutata, tagastab see kliendile lihtsalt 301 ümbersuunamiskoodi ja muudab URL-i selle asemel, et kasutada https-i. Nii ei jää te kasutajatest ilma
serverkuulata 80 default_server;
kuula [::]: 80 default_server;
kuulata 443 ssl;
ssl_certificate / etc / letsencrypt / live / SUBDOMAIN.DOMAIN.TLS / täisahel.pem;
ssl_certificate_key / etc / letsencrypt / live / SUBDOMAIN.DOMAIN.TLD / privkey.pem;
ssl_session_cache jagatud: le_nginx_SSL: 1m;
ssl_session_timeout 1440m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers sisse;
ssl_ciphers "ECDHE-ECDSA-CHACHA20-POLY1305: ECDHE-RSA-CHACHA20-POLY1305: ECDHE-
ECDSA-AES128-GCM-SHA256: ECDHE-RSA-AES128-GCM-SHA256: ECDHE-ECDSA-AES256
-GCM-SHA384: ECDHE-RSA-AES256-GCM-SHA384: DHE-RSA-AES128-GCM-SHA256: DHE-RSA-AES256
-GCM-SHA384: ECDHE-ECDSA-AES128-SHA256: ECDHE-RSA-AES128-SHA256: ECDHE-ECDSA-AES128
-SHA: ECDHE-RSA-AES256-SHA384: ECDHE-RSA-AES128-SHA: ECDHE-ECDSA-AES256-SHA384: ECDHE
-ECDSA-AES256-SHA: ECDHE-RSA-AES256-SHA: DHE-RSA-AES128-SHA256: DHE-RSA-AES128-SHA: DHE
-RSA-AES256-SHA256: DHE-RSA-AES256-SHA: ECDHE-ECDSA-DES-CBC3-SHA: ECDHE-RSA-DES-CBC3
-SHA: EDH-RSA-DES-CBC3-SHA: AES128-GCM-SHA256: AES256-GCM-SHA384: AES128-SHA256: AES256
-SHA256: AES128-SHA: AES256-SHA: DES-CBC3-SHA:!DSS ";
juur / var / www / html;
indeksindeks.HTML-i register.htm indeks.nginx-debian.HTML;
serveri_nimi _;
asukoht /
proov_failid $ uri $ uri / = 404;
kui (skeem $ != "https")
tagastage 301 https: // $ host $ request_uri;
Sellele konfiguratsioonifailile on lisatud mõned lisaparameetrid. Sealhulgas aegumise deklareerivad parameetrid, TLS-i versioon, mida peaksite kasutama, ja milliseid krüpteerimisšifreid server kasutab. See laenati Certboti soovitatud (kuid valikulistest) Nginxi konfiguratsioonidest.
Nüüd kontrollige, kas konfiguratsioonifail on kehtiv, ja taaskäivitage server.
$ sudo nginx -tnginx: konfiguratsioonifail / etc / nginx / nginx.konf süntaks on ok
nginx: konfiguratsioonifail / etc / nginx / nginx.konf test on edukas
$ sudo teenuse nginx taaskäivitamine
Järeldus
Sama lähenemist saate rakendada ka keerukamate veebirakenduste ja teenuste jaoks, mis vajavad HTTPS-i. Letsencrypt lubame teil väljastada sertifikaate korraga mitmele domeeninimele ja saate oma nginxi veebiserveri taga üsna hõlpsasti majutada mitu veebisaiti. Kui järgisite ülaltoodud näidet, proovige oma veebisaidile jõuda, kasutades http (http: // SUBDOMAIN.DOMAIN.TLD) ja teid suunatakse automaatselt HTTPS-i.
Muude veebiserverite (nt Apache) jaoks kasutage sobivat certboti pistikprogrammi või vaadake nende ametlikku dokumentatsiooni.