Si të sigurojmë Nginx me Let's Encrypt në CentOS 7
Prezantimi
Let's Encrypt është një Autoritet i ri Certifikate (CA) që ofron një mënyrë për të marrë dhe instaluar certifikata falas TLS/SSL, duke mundësuar kështu HTTPS të koduar në serverët e uebit. Ai thjeshton procesin duke ofruar një klient softuer, Certbot, që përpiqet të automatizojë shumicën (nëse jo të gjithë) nga hapat e kërkuar. Aktualisht, i gjithë procesi i marrjes dhe instalimit të një certifikate është plotësisht i automatizuar në serverët e internetit Apache dhe Nginx.
Në këtë tutorial, ne do t'ju tregojmë se si të përdorni klientin certbot
Let's Encrypt për të marrë një certifikatë SSL falas dhe ta përdorim atë me Nginx në CentOS 7. Gjithashtu do t'ju tregojmë se si të rinovoni automatikisht certifikatën tuaj SSL .
Parakushtet
Përpara se të ndiqni këtë tutorial, do t'ju duhen disa gjëra.
- Një server CentOS 7 me një përdorues jo-root që ka privilegje
sudo
. Mund të mësoni se si të konfiguroni një llogari të tillë përdoruesi duke ndjekur hapat 1-3 në udhëzuesin tonë fillestar të konfigurimit të serverit për CentOS 7. - Ju duhet të zotëroni ose kontrolloni emrin e domain-it të regjistruar me të cilin dëshironi të përdorni certifikatën. Nëse nuk keni tashmë një emër domaini të regjistruar, mund ta regjistroni një me një nga regjistruesit e shumtë të emrave të domenit atje (p.sh. Namecheap, GoDaddy, etj.).
- Një DNS Një rekord që drejton domenin tuaj në adresën IP publike të serverit tuaj. Kjo kërkohet për shkak të mënyrës se si Let's Encrypt vërteton që ju zotëroni domenin për të cilin po lëshon një certifikatë. Për shembull, nëse doni të merrni një certifikatë për
example.com
, ai domen duhet të zgjidhet në serverin tuaj që procesi i vlefshmërisë të funksionojë. Konfigurimi ynë do të përdorë www.example.com si emra domenesh, kështu që kërkohen të dy regjistrimet DNS.
Pasi t'i keni të gjitha parakushtet jashtë rrugës, le të kalojmë në instalimin e softuerit të klientit Let's Encrypt.
Hapi 1 - Instalimi i klientit Certbot Let's Encrypt
Hapi i parë për të përdorur Let's Encrypt për të marrë një certifikatë SSL është instalimi i softuerit certbot
në serverin tuaj. Aktualisht, mënyra më e mirë për ta instaluar këtë është përmes depove EPEL.
Aktivizoni hyrjen në depo EPEL në serverin tuaj duke shtypur:
- sudo yum install epel-release
Pasi të jetë aktivizuar depoja, mund të merrni paketën certbot-nginx
duke shtypur:
- sudo yum install certbot-nginx
Klienti certbot
Let's Encrypt është instaluar tani dhe gati për t'u përdorur.
Hapi 2 - Konfigurimi i Nginx
Nëse nuk e keni instaluar ende Nginx, mund ta bëni këtë tani. Depoja EPEL duhet të jetë tashmë e aktivizuar nga seksioni i mëparshëm, kështu që mund të instaloni Nginx duke shtypur:
- sudo yum install nginx
Më pas, nisni Nginx duke përdorur systemctl
:
- sudo systemctl start nginx
Certbot mund të konfigurojë automatikisht SSL për Nginx, por duhet të jetë në gjendje të gjejë bllokun e saktë server
në konfigurimin tuaj. Këtë e bën duke kërkuar një direktivë emri_server
që përputhet me domenin për të cilin po kërkoni një certifikatë. Nëse po filloni me një instalim të ri Nginx, mund të përditësoni skedarin e paracaktuar të konfigurimit duke përdorur vi
ose redaktuesin tuaj të preferuar të tekstit:
- sudo vi /etc/nginx/nginx.conf
Gjeni linjën ekzistuese emri_server
:
server_name _;
Zëvendësoni nënvizimin _
me emrin e domenit tuaj:
server_name example.com www.example.com;
Ruani skedarin dhe hiqni dorë nga redaktori juaj. Nëse jeni duke përdorur vi
, shkruani :x
, pastaj y
kur të kërkohet, për të ruajtur dhe për t'u larguar. Verifikoni sintaksën e modifikimeve tuaja të konfigurimit me:
- sudo nginx -t
Nëse kjo funksionon pa gabime, ringarkoni Nginx për të ngarkuar konfigurimin e ri:
- sudo systemctl reload nginx
Certbot tani do të jetë në gjendje të gjejë bllokun e saktë server
dhe ta përditësojë atë. Tani do të përditësojmë murin tonë të zjarrit për të lejuar trafikun HTTPS.
Hapi 3 - Përditësimi i Firewall-it
Nëse keni të aktivizuar një mur zjarri, sigurohuni që portat 80 dhe 443 të jenë të hapura për trafikun në hyrje. Nëse nuk po ekzekutoni një mur zjarri, mund të kaloni përpara.
Nëse keni një mur zjarri firewalld që funksionon, mund t'i hapni këto porte duke shkruar:
- sudo firewall-cmd --add-service=http
- sudo firewall-cmd --add-service=https
- sudo firewall-cmd --runtime-to-permanent
Nëse funksionon një mur zjarri iptables, komandat që duhet të ekzekutoni varen shumë nga grupi aktual i rregullave. Për një grup rregullash fillestare, mund të shtoni akses HTTP dhe HTTPS duke shtypur:
- sudo iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT
- sudo iptables -I INPUT -p tcp -m tcp --dport 443 -j ACCEPT
Tani jemi gati të ekzekutojmë Certbot dhe të marrim certifikatat tona.
Hapi 4 - Marrja e një certifikate
Certbot ofron një sërë mënyrash për të marrë certifikata SSL, përmes shtojcave të ndryshme. Shtojca Nginx do të kujdeset për rikonfigurimin e Nginx dhe ringarkimin e konfigurimit sa herë që është e nevojshme:
- sudo certbot --nginx -d example.com -d www.example.com
Ky funksionon certbot
me shtojcën --nginx
, duke përdorur -d
për të specifikuar emrat për të cilët dëshirojmë që certifikata të jetë e vlefshme.
Nëse kjo është hera e parë që ekzekutoni certbot
, do t'ju kërkohet të vendosni një adresë emaili dhe të pranoni kushtet e shërbimit. Pasi ta bëjë këtë, certbot
do të komunikojë me serverin Let's Encrypt, më pas do të ekzekutojë një sfidë për të verifikuar që ju kontrolloni domenin për të cilin po kërkoni një certifikatë. Konfigurimi do të përditësohet dhe Nginx do të ringarkohet për të marrë cilësimet e reja. certbot
do të përfundojë me një mesazh që ju tregon se procesi ishte i suksesshëm dhe ku ruhen certifikatat tuaja:
OutputIMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/your_domain/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/your_domain/privkey.pem
Your certificate will expire on 2022-10-20. To obtain a new or
tweaked version of this certificate in the future, simply run
certbot again with the "certonly" option. 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: https://eff.org/donate-le
Certifikatat tuaja shkarkohen, instalohen dhe ngarkohen. Provoni të ringarkoni faqen tuaj të internetit duke përdorur https://
dhe vini re treguesin e sigurisë së shfletuesit tuaj. Duhet të tregojë se siti është i siguruar siç duhet, zakonisht me një ikonë të bllokimit të gjelbër.
Hapi 5 - Vendosja e rinovimit automatik
Certifikatat e Let's Encrypt janë të vlefshme vetëm për nëntëdhjetë ditë. Kjo është për të inkurajuar përdoruesit të automatizojnë procesin e rinovimit të certifikatës së tyre. Do të na duhet të konfigurojmë një komandë të ekzekutuar rregullisht për të kontrolluar për certifikata të skaduara dhe për t'i rinovuar ato automatikisht.
Për të kryer kontrollin e rinovimit çdo ditë, ne do të përdorim cron
, një shërbim standard i sistemit për ekzekutimin e punëve periodike. Ne i tregojmë cron
se çfarë të bëjë duke hapur dhe modifikuar një skedar të quajtur crontab
.
- sudo crontab -e
Redaktori juaj i tekstit do të hapë crontab-in e paracaktuar që është një skedar teksti bosh në këtë pikë. Ngjitni në rreshtin e mëposhtëm, më pas ruajeni dhe mbylleni:
. . .
15 3 * * * /usr/bin/certbot renew --quiet
Pjesa 15 3 * * *
e kësaj rreshti do të thotë \ekzekutoni komandën e mëposhtme në orën 3:15 të mëngjesit, çdo ditë. Mund të zgjidhni në çdo kohë.
Komanda rinovoj
për Certbot do të kontrollojë të gjitha certifikatat e instaluara në sistem dhe do të përditësojë ato që janë caktuar të skadojnë në më pak se tridhjetë ditë. --qetë
i thotë Certbot të mos nxjerrë informacion ose të presë për hyrjen e përdoruesit.
cron
tani do ta ekzekutojë këtë komandë çdo ditë. Të gjitha certifikatat e instaluara do të rinovohen automatikisht dhe do të ringarkohen kur të kenë tridhjetë ditë ose më pak përpara se të skadojnë.
Për më shumë informacion se si të krijoni dhe planifikoni punë cron, mund të kontrolloni Si të përdorni Cron për të automatizuar detyrat në një udhëzues VPS.
konkluzioni
Në këtë tutorial ne kemi instaluar klientin Let's Encrypt certbot
, kemi shkarkuar certifikata SSL për domenin tonë, kemi konfiguruar Nginx për të përdorur këto certifikata dhe kemi vendosur rinovimin automatik të certifikatës. Nëse keni pyetje të mëtejshme në lidhje me përdorimin e Certbot, dokumentacioni i tyre është një vend i mirë për të filluar.