Anneli Mattila - Suojaan
Sisällysluettelo:
- edellytykset
- Asenna Certbot
- Luo vahva Dh (Diffie-Hellman) -ryhmä
- Salamme SSL-varmenteen
- SSL-varmenteen automaattinen uusiminen
- johtopäätös
Let's Encrypt on ilmainen ja avoin sertifikaattien myöntäjä, jonka on kehittänyt Internet Security Research Group (ISRG). Lähes kaikki selaimet luottavat tänään Let's Encryptin myöntämiin varmenteisiin.
Tässä oppaassa annamme vaiheittaiset ohjeet siitä, kuinka Nginx voidaan suojata Let's Encrypt -sovelluksella käyttämällä certbot-työkalua Ubuntu 16.04: ssä.
edellytykset
Varmista, että olet täyttänyt seuraavat ehdot, ennen kuin jatkat tätä opastusta:
- Sinulla on verkkotunnus, joka osoittaa julkisen palvelimen IP-osoitteeseen. Tässä opetusohjelmassa käytämme
example.com. Sinulla on Nginx asennettuna seuraamalla kuinka asennat Nginxin Ubuntu 16.04: een.
Asenna Certbot
Certbot on pythoniin kirjoitettu apuohjelma, joka voi automatisoida Let's Encrypt SSL -sertifikaattien hankkimisen ja uusimisen sekä web-palvelimien määrittämisen.
Asenna ensin
software-properties-common
paketti, joka tarjoaa
add-apt-repository
-työkalun, jota tarvitaan lisä PPA: ien lisäämiseen.
Päivitä pakettihakemisto ja asenna
software-properties-common
seuraavilla:
sudo apt update
sudo apt install software-properties-common
Kun asennus on valmis, lisää certbot PPA -varasto järjestelmääsi seuraavalla komennolla:
sudo add-apt-repository ppa:certbot/certbot
Päivitä pakettiluettelo ja asenna certbot-paketti:
sudo apt update
sudo apt install certbot
Luo vahva Dh (Diffie-Hellman) -ryhmä
Diffie – Hellman-avaintenvaihto (DH) on menetelmä salausavainten vaihtamiseksi turvallisesti suojaamattoman tietoliikennekanavan kautta. Luo uusi joukko 2048-bittisiä DH-parametreja turvallisuuden parantamiseksi:
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Jos haluat, voit muuttaa kokoa 4096 bittiin saakka, mutta tällöin luominen voi viedä yli 30 minuuttia järjestelmän entropiasta riippuen.
Salamme SSL-varmenteen
Saadaksemme verkkotunnuksellemme SSL-sertifikaatin käytämme Webroot-laajennusta, joka toimii luomalla väliaikainen tiedosto
${webroot-path}/.well-known/acme-challenge
verkkotunnuksen validoimiseksi
${webroot-path}/.well-known/acme-challenge
hakemistossa
${webroot-path}/.well-known/acme-challenge
. Let's Encrypt -palvelin tekee HTTP-pyyntöjä väliaikaiseen tiedostoon vahvistaakseen, että pyydetty verkkotunnus ratkaisee palvelimelle, jossa certbot toimii.
Yksinkertaistamiseksi aiomme kartoittaa kaikki. Hyvin
.well-known/acme-challenge
HTTP-pyynnöt yhteen hakemistoon,
/var/lib/letsencrypt
.
Seuraavat komennot luovat hakemiston ja tekevät siitä kirjoitettavan Nginx-palvelimelle.
mkdir -p /var/lib/letsencrypt/.well-known
chgrp www-data /var/lib/letsencrypt
chmod g+s /var/lib/letsencrypt
Koodin päällekkäisyyksien välttämiseksi luo seuraavat kaksi katkelmaa, jotka aiomme sisällyttää kaikkiin Nginx-palvelinlohkotiedostoihimme.
location ^~ /.well-known/acme-challenge/ { allow all; root /var/lib/letsencrypt/; default_type "text/plain"; try_files $uri =404; }
/etc/nginx/snippets/ssl.conf
ssl_dhparam /etc/ssl/certs/dhparam.pem; ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; ssl_session_tickets off; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 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'; ssl_prefer_server_ciphers on; ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8 8.8.4.4 valid=300s; resolver_timeout 30s; add_header Strict-Transport-Security "max-age=15768000; includeSubdomains; preload"; add_header X-Frame-Options SAMEORIGIN; add_header X-Content-Type-Options nosniff;
Yllä oleva katkelma sisältää hakkurit, jotka Mozilla on suositellut uudelleen, mahdollistaa OCSP-nidonnan, HTTP-tiukan liikenneturvallisuuden (HSTS) ja valvoo muutama tietoturvallisuuteen keskittyvä
Kun katkelmat on luotu, avaa verkkotunnuspalvelinlohko ja sisällytä
letsencrypt.conf
katkelma seuraavasti:
server { listen 80; server_name example.com www.example.com; include snippets/letsencrypt.conf; }
Aktivoi palvelinlohko luomalla symbolinen linkki
sites-available
sites-enabled
:
sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/example.com.conf
Lataa Nginx-kokoonpano uudelleen, jotta muutokset tulevat voimaan:
sudo systemctl reload nginx
Suorita certbot-skripti webroot-laajennuksella ja hanki SSL-varmennetiedostot:
sudo certbot certonly --agree-tos --email [email protected] --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com
Jos SSL-varmenne saadaan onnistuneesti, certbot tulostaa seuraavan viestin:
IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/example.com/privkey.pem Your cert will expire on 2018-04-23. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF:
Nyt kun meillä on varmennetiedostot, muokkaa verkkotunnuksen palvelinlohkoa seuraavasti:
/etc/nginx/sites-available/example.com.conf
server { listen 80; server_name www.example.com example.com; include snippets/letsencrypt.conf; return 301 https://$host$request_uri; } server { listen 443 ssl http2; server_name www.example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; include snippets/letsencrypt.conf; return 301 https://example.com$request_uri; } server { listen 443 ssl http2; server_name example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; include snippets/letsencrypt.conf; #… other code }
Yllä olevalla kokoonpanolla pakotamme HTTPS: n ja ohjaamme verkkotunnuksen
non www
version
non www
versioon.
Lataa Nginx-palvelu uudelleen, jotta muutokset tulevat voimaan:
SSL-varmenteen automaattinen uusiminen
Salatko varmenteet ovat voimassa 90 päivää. Voit uusia sertifikaatit automaattisesti ennen niiden voimassaolon päättymistä. Certbot-paketti luo cronjobin, joka suoritetaan kahdesti päivässä ja uusii sertifikaatit automaattisesti 30 päivää ennen sen voimassaolon päättymistä.
Koska käytämme certbot-webroot-laajennusta varmenteen uusimisen jälkeen, meidän on myös ladattava nginx-palvelu uudelleen. Liitä
--renew-hook "systemctl reload nginx"
liitä
--renew-hook "systemctl reload nginx"
tiedostoon
/etc/cron.d/certbot
niin, että se näyttää tältä:
0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(3600))' && certbot -q renew --renew-hook "systemctl reload nginx"
Testaa uusimisprosessi käyttämällä certbot
--dry-run
-kytkintä:
sudo certbot renew --dry-run
Jos virheitä ei ole, uusimisprosessi onnistui.
johtopäätös
Tässä opetusohjelmassa käytit Let's Encrypt -asiakassertifikaattia saadaksesi SSL-varmenteet verkkotunnuksellesi. Olet myös luonut Nginx-katkelmia koodin päällekkäisyyksien välttämiseksi ja määrittänyt Nginxin käyttämään varmenteita. Oppitunnin lopussa olet asettanut cronjob-sertifikaatin automaattiseen uusimiseen.
nginx ubuntu salattava certbot sslSuojaa nginx salaamalla sentos 7
Tässä opetusohjelmassa annamme vaiheittaiset ohjeet siitä, kuinka Nginx voidaan suojata Let's Encrypt -sovelluksella käyttämällä Certbot-työkalua CentOS 7: ssä
Suojaa nginx salaamalla debian 9
Tässä opetusohjelmassa selitetään kuinka käyttää Certbot-työkalua ilmaisen SSL-varmenteen saamiseen Nginxille Debian 9: ssä. Osoitamme myös, kuinka Nginx määritetään käyttämään SSL-varmennetta ja ottamaan käyttöön HTTP / 2.
Suojaa nginx salaamalla ubuntu 18.04
Let's Encrypt on ilmainen ja avoin sertifikaattien myöntäjä, jonka on kehittänyt Internet Security Research Group. Tässä opetusohjelmassa annamme vaiheittaiset ohjeet siitä, kuinka Nginx voidaan suojata Let's Encrypt -sovelluksella käyttämällä certbot-työkalua Ubuntu 18.04: ssä







