Ebben az útmutatóban a védelem módjáról beszélünk Nginx webszerver be FreeBSD val vel TLS/SSL által felajánlott tanúsítványokat Titkosítsuk a tanúsító hatóságot. Azt is megmutatjuk, hogyan lehet automatikusan megújítani a Lets ’Encrypt tanúsítványokat a lejárat előtt.
TLS, rövidítése A szállítási réteg biztonsága, alatt futó protokoll HTTP protokoll, és tanúsítványokat és kulcsokat használ a csomagok beágyazásához, valamint a szerver és az ügyfél, vagy ebben az esetben a Nginx a webszerver és az ügyfél böngészője, a kapcsolat biztosítása érdekében, hogy egy harmadik fél, aki esetleg elfogja a forgalmat, ne tudja visszafejteni az átvitelt.
Olvassa el: Telepítse a Let's Encrypt for Apache programot FreeBSD -re
Az ingyenes megszerzésének folyamata Titkosítsuk tanúsítvány be FreeBSD telepítésével nagyban leegyszerűsíthető certboot ügyfél segédprogram, amely a hivatalos Let's Encrypt kliens, amelyet tanúsítványok generálására és letöltésére használnak.
1. Alapértelmezés szerint a TLS/SSL a szerver konfigurálása nincs engedélyezve FreeBSD mert a TLS a szerverblokk utasításai megjegyzéseket fűznek Nginx alapértelmezett konfigurációs fájl.
Annak érdekében, hogy aktiválja a TLS szerver be Nginx, nyisd ki nginx.conf konfigurációs fájlban, keresse meg a kezdetét meghatározó sort SSL szerverre, és frissítse a teljes blokkot, hogy úgy nézzen ki, mint az alábbi minta.
# nano /usr/local/etc/nginx/nginx.conf.
Nginx HTTPS blokkrészlet:
Nginx HTTPS konfiguráció
szerver {listen 443 ssl default_server; szerver név www.sajatdomain.com; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; error_page 500 502 503 504 /50x.html; location = /50x.html {root/usr/local/www/nginx-dist; } location/{root/usr/local/www/nginx; index index.html index.htm; try_files $ uri $ uri / /index.php?$args; } ssl_certificate "/usr/local/etc/letsencrypt/live/www.sajatdomain.com/cert.pem"; ssl_certificate_key "/usr/local/etc/letsencrypt/live/www.sajatdomain.com/privkey.pem"; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_dhparam /usr/local/etc/nginx/dhparam.pem; ssl_session_cache megosztva: SSL: 1m; ssl_session_timeout 10m; ssl_ciphers HIGH:! aNULL:! MD5; ssl_prefer_server_ciphers on; # Használjon gzip tömörítést. gzip be; gzip_disable "msie6"; gzip_vary on; gzip_proxied any; gzip_comp_level 5; gzip_buffers 16 8k; gzip_http_version 1.0; # Állítson be egy változót, hogy megkerülje a beágyazott feltételek hiányát. $ Cache_uri $ request_uri; location ~ /.well-known {engedélyezi az összeset; } hely ~ \ .php $ {root/usr/local/www/nginx; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; #fastcgi_param SCRIPT_FILENAME /scripts $ fastcgi_script_name; fastcgi_param SCRIPT_FILENAME $ request_filename; include fastcgi_params; } }
A fenti blokk mellett SSL blokk, néhány kijelentést is tartalmaz gzip tömörítés engedélyezése és FastCGI folyamatkezelő, PHP kód továbbítására szolgál PHP-FPM átjáró a dinamikus webes alkalmazások futtatásához.
Miután hozzáadta a fenti kódot Nginx fő konfigurációs fájl, ne indítsa újra a démont, és ne alkalmazza a beállításokat a telepítés és beszerzés előtt Titkosítsuk tanúsítvány a domainhez.
2. A Let's Encrypt telepítésének folyamata certbot A FreeBSD kliens segédprogramja tartalmazza a forráskód letöltését py-certbot és helyileg fordítsa le az alábbi parancsok kiadásával.
# cd/usr/ports/security/py-certbot. # tisztítsa meg a telepítést.
3. Összeállítása a py-certbot A segédprogram sok időt vesz igénybe, összehasonlítva a szokásos bináris csomag telepítésével. Ez idő alatt számos függőséget kell letölteni a FreeBSD -ben helyben lefordítva.
Ezenkívül egy sor felszólítás jelenik meg a képernyőn, amelyek megkövetelik, hogy válassza ki, milyen csomagokat kell használni a fordítási időben minden függőség esetén. Az első képernyőn válassza ki a következő eszközöket a gomb megnyomásával [hely] kulcs a fordításhoz python27 függőség, amint azt az alábbi kép is mutatja.
4. Ezután válassza ki DOCS és SZálak számára gettext-tools függőség és a sajtó rendben folytatni az alábbi képen látható módon.
5. A következő képernyőn hagyja a gombot TESZTEK opció le van tiltva libffi-3.2.1 és nyomja meg rendben hogy továbblépjünk.
6. Ezután üsd hely kiválaszt DOCS számára py27-enum34 dependency, amely telepíti az eszköz dokumentációját, és nyomja meg a gombot rendben folytatni, ahogy az alábbi képernyőkép is mutatja.
7. Végül válassza ki a minta példákat py27-openssl függőség megnyomásával [hely] kulcs és ütés rendben befejezni a fordítási és telepítési folyamatot py-certbot ügyfél.
8. A fordítási és telepítési folyamat után py-certbot A segédprogram befejeződött, futtassa az alábbi parancsot, hogy frissítse az eszközt a csomag legújabb verzióján, ahogy az alábbi képernyőképeken látható.
# pkg a py27-certbot telepítése.
9. Bizonyos problémák elkerülése érdekében előfordulhat, hogy ingyenes szolgáltatás beszerzése közben fordul elő Titkosítsuk tanúsítvány, a leggyakoribb hiba "pkg_források. DistributionNotFound”, Győződjön meg arról, hogy a következő két függőség is jelen van a rendszerében: py27-só és py27-acme.
# pkg telepítse a py27-sót. # pkg install py27-acme.
10. Ha önálló titkosítási tanúsítványt szeretne beszerezni a domainjéhez, futtassa a következőt parancsot, és megadja a domain nevet és az összes aldomaint, amelyhez tanúsítványokat szeretne szerezni utalva a -d
zászló.
# certbot certonly -önálló -d yourdomain.com -d www.sajatdomain.com
11. A tanúsítvány létrehozása során meg kell adnia e -mail címét, és el kell fogadnia a Let's Encrypt szolgáltatási feltételeket. típus a
billentyűzetről, hogy egyetértsen és folytassa, és megkérdezi, hogy szeretné -e megosztani e -mail címét a Let's Encrypt partnereivel.
Ha nem szeretné megosztani e -mail címét, csak írja be nem
szót a parancssorban, majd nyomja meg a gombot [belép] gombot a folytatáshoz. Miután a domainhez tartozó tanúsítványokat sikeresen megszerezte, kap néhányat fontos megjegyzések, amelyek tájékoztatják Önt arról, hogy a tanúsítványokat hol tárolják a rendszerben, és mikor lejár.
12. Abban az esetben, ha a Let's Encrypt tanúsítványt a "webgyökér”Bővítmény hozzáadásával webgyökér a tartomány Nginx kiszolgálójának könyvtárában, adja ki a következő parancsot a --gyökér
és -w
zászlók. Alapértelmezés szerint, ha nem változtatta meg az Nginx webgyökér útvonalát, akkor a következő helyen kell elhelyezkednie /usr/local/www/nginx/ rendszer útvonala.
# certbot certonly --webroot -w /usr/local/www/nginx/ -d yourdomain.com -d www.sajatdomain.com
Mint a -strandalone
tanúsítvány megszerzésének eljárása, a --gyökér
Az eljárás arra is felkéri Önt, hogy adjon meg egy e -mail címet a tanúsítvány megújításához és a biztonsági megjegyzésekhez a
hogy egyetértjünk a Let's Encrypt feltételeivel és nem
vagy Igen
az e -mail cím megosztása vagy sem megosztása Titkosítsuk a partnereket az alábbi minta szerint.
Ne feledje, hogy a certbot ügyfél észleli a hamis e -mail címet, és nem engedi, hogy folytassa a tanúsítvány generálását, amíg meg nem ad egy valódi e -mail címet.
A hibakeresési napló mentése a /var/log/letsencrypt/letsencrypt.log mappába. Írja be az e -mail címet (sürgős megújításhoz és biztonsági figyelmeztetésekhez használják) (Írja be a „c” címet. megszünteti):[e -mail védett] #Hamis e -mail címet fogunk észlelni. Úgy tűnik, problémák vannak ezzel a címmel. Írja be az e -mail címet (használt. sürgős megújítás és biztonsági megjegyzések) Ha ezt valóban ki akarja hagyni, akkor megteheti. futtassa az ügyfelet --register-unsafely-e-mail nélkül, de győződjön meg róla. készítsen biztonsági másolatot fiókkulcsáról az/etc/letsencrypt/accounts könyvtárból (a törléshez írja be a „c” betűt):[e -mail védett] Kérjük, olvassa el az Általános Szerződési Feltételeket a címen. https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf. Egyet kell értenie. ahhoz, hogy regisztráljon az ACME szerverre a címen. https://acme-v01.api.letsencrypt.org/directory. (A) gree/(C) ancel:a
Hajlandó lenne megosztani e-mail címét az Electronic Frontier Alapítvánnyal, a Let's Encrypt projekt alapító partnerével és a Certbot fejlesztő nonprofit szervezettel? Szeretnénk e -mailt küldeni Önnek az EFF -ről és az internet titkosításával, felhasználóinak védelmével és a digitális jogok védelmével kapcsolatos munkánkról. (Igen nem:n
Új tanúsítvány beszerzése A következő kihívások végrehajtása: http-01 kihívás a www.domain.com weboldal gyökérútjának használatával/usr/local/www/nginx/minden páratlan tartományhoz. Várakozás az ellenőrzésre... A kihívások elhárítása FONTOS MEGJEGYZÉSEK: - Gratulálunk! A tanúsítványt és a láncot a /usr/local/etc/letsencrypt/live/www.yourdomain.com/fullchain.pem címre mentették. Tanúsítványa 2017-12-28-án lejár. Ha a jövőben új vagy módosított változatot szeretne beszerezni ennek a tanúsítványnak, egyszerűen futtassa újra a certbot alkalmazást. Ha nem interaktív módon szeretné megújítani * az összes tanúsítványát, futtassa a "certbot megújítás" parancsot - A fiók hitelesítő adatait elmentette a Certbot konfigurációs könyvtárába a/usr/local/etc/letsencrypt címen. Biztonsági másolatot kell készítenie erről a mappáról. Ez a konfigurációs könyvtár tanúsítványokat és privát kulcsokat is tartalmaz, amelyeket a Certbot szerzett, így ideális a mappák rendszeres biztonsági mentése. - Ha tetszik a Certbot, kérjük, fontolja meg munkánk támogatását: Adományozva az ISRG -nek / Titkosítsuk: https://letsencrypt.org/donate Adományozás az EHA -nak: https://eff.org/donate-le
13. A megszerzett Let's Encrypt tanúsítványok és kulcsok helye a FreeBSD -ben az /usr/local/etc/letsencrypt/live/www.yourdomain.com/ rendszer útvonala. Probléma parancs a Let's Encrypt tanúsítvány összetevőinek megjelenítéséhez: a láncfájlt, a teljes láncú fájlt, a privát kulcsot és a tanúsítványfájlt, a következő példa szerint.
# ls /usr/local/etc/letsencrypt/live/www.sajatdomain.com/
14. A Let's Encrypt tanúsítványok telepítéséhez a domainjéhez az Nginx webszerveren nyissa meg az Nginx fő konfigurációs fájlját vagy a Nginx TLS szervert, ha külön fájlról van szó, és módosítsa az alábbi sorokat, hogy tükrözzék a kibocsátott tanúsítványok titkosításának útvonalát az ábrán látható módon lent.
# nano /usr/local/etc/nginx/nginx.conf.
Frissítse a következő sorokat, hogy így nézzen ki ebben a mintában:
ssl_certificate "/usr/local/etc/letsencrypt/live/www.sajatdomain.com/cert.pem"; ssl_certificate_key "/usr/local/etc/letsencrypt/live/www.sajatdomain.com/privkey.pem";
15. Továbbá, ha a vonal ssl_dhparam -ben van jelen Nginx SSL konfigurációt, akkor létre kell hoznia egy újat 2048 bit Diffie – Hellman kulcsot a következő paranccsal:
# openssl dhparam –out /usr/local/etc/nginx/dhparam.pem 2048
16. Végül az Nginx TLS konfiguráció aktiválásához először ellenőrizze az Nginx globális konfigurációját szintaktikai hibákat, majd indítsa újra az Nginx szolgáltatást az SSL konfiguráció alkalmazásához az alábbiak kiadásával parancsokat.
# nginx -t. # service nginx újraindítása.
17. Ellenőrizze, hogy az Nginx démon kötelező -e 443 portot a következő parancsok kiadásával, amelyek felsorolhatják a rendszer összes megnyitott hálózati aljzatát figyelő állapotban.
# netstat -an -p tcp | grep HALLGASS. # sockstat -4
18. A domain címét a címen keresztül is felkeresheti HTTPS protokollt a böngésző megnyitásával, és írja be a következő címet annak megerősítéséhez, hogy a Let's Encrypt tanúsítványok a várt módon működnek. Mivel érvényes tanúsító hatóság által létrehozott tanúsítványokat használ, a böngészőben nem szabad hibát megjeleníteni.
https://www.yourdomain.com.
19. Az Openssl segédprogram segíthet megtalálni a Let's Encrypt CA -tól kapott tanúsítványra vonatkozó információkat is, ha futtatja a parancsot a következő lehetőségekkel.
# openssl s_client -connect www.sajatdomain.com: 443
Ha arra szeretné kényszeríteni az Nginx -et, hogy az összes http -t a domainjére beérkező https -kérésekre irányítsa a porton 80 nak nek HTTPS, nyissa meg az Nginx konfigurációs fájlt, keresse meg a szerver direktívát a 80 -as porthoz, és adja hozzá az alábbi sort a szerver_neve utasítás után az alábbi példában látható módon.
átírni ^(.*) https://www.yourdomain.com$1 állandó;
20. A Let's Encrypt hatóság által kiállított tanúsítvány automatikus megújításának beállítása a lejárat előtt elvégezhető úgy, hogy ütemezi a cron feladatot napi egyszeri futtatásra a következő parancs kiadásával.
# crontab -e.
Cron feladat a tanúsítvány megújítására.
0 0 * * * certbot megújítása >> /var/log/letsencrypt.log.
Ez minden! Az Nginx mostantól biztonságos webalkalmazásokat tud kiszolgálni látogatói számára a Let's Encrypt ingyenes tanúsítványok használatával.