Ubuntu we Debian-da şifrlemek bilen Nginx-i nädip goramaly


Apache SSL bilen baglanyşykly öňki “Encrypt” gollanmasyndan soň, bu makalada Ubuntu ýa-da Debian-da Nginx web serweri üçin Let Encrypt CA tarapyndan berlen mugt SSL/TLS şahadatnamasyny nädip döredip we gurmalydygyny ara alyp maslahatlaşarys.

  1. Ubuntu we Debian-da mugt şifrlemek bilen ygtybarly Apache
  2. RHEL we CentOS-da Apache-ni ygtybarly üpjün etmek üçin SSL-i şifrlemek

  1. Serweriňiziň IP adresine salgylanmak üçin dogry DNS A ýazgylary bilen hasaba alnan domen.
  2. Birnäçe domeni ýa-da kiçi domeni ýerleşdirmegi meýilleşdirýän bolsaňyz, SSL we Vhost bilen işleýän Nginx web serweri.

1-nji ädim: Nginx web serwerini gurmak

1. Birinji ädimde, aşakdaky buýrugy bermek bilen, eýýäm gurulmadyk bolsa, Nginx web serwerini guruň:

$ sudo apt-get install nginx

2-nji ädim: Geliň, Nginx üçin SSL şifrlemek şahadatnamasyny dörediň

2. Mugt SSL/TLS şahadatnamasyny döretmezden ozal, aşakdaky buýruklary bermek bilen git müşderisiniň kömegi bilen /usr/local/ faýl ulgamynyň iýerarhiýasyna Geliň Encrypt programma üpjünçiligini guruň:

$ sudo apt-get -y install git
$ cd /usr/local/
$ sudo git clone https://github.com/letsencrypt/letsencrypt

3. Nginx üçin şahadatnama almagyň tertibi awtomatlaşdyrylan hem bolsa, “Let Encrypt Standalone” pluginini ulanyp, Nginx üçin mugt SSL şahadatnamasyny el bilen döredip we gurup bilersiňiz.

Bu usul, 80-nji portuň gysga wagtlap ulgamyňyzda ulanylmazlygyny talap edýär, “Geliň şifrlemek” müşderisi şahadatnama bermezden ozal serweriň şahsyýetini tassyklaýar.

Nginx-i eýýäm işleýän bolsaňyz, aşakdaky buýrugy bermek bilen hyzmaty bes ediň.

$ sudo service nginx stop
OR
$ sudo systemctl stop nginx

80-nji port bilen baglanyşdyrýan beýleki hyzmaty işleýän bolsaňyz, bu hyzmaty hem bes ediň.

4. Netstat buýrugyny işletmek bilen 80-nji portuň mugtdygyny tassyklaň:

$ sudo netstat -tlpn | grep 80

5. Indi SSL şahadatnamasyny almak üçin letencrypt işlemegiň wagty geldi./Usr/local/letsencrypt ulgam ýolundan tapylan gurnama bukjasyny şifrläliň we sertifikatly - standalone opsiýasyny we -d baýdagyny üpjün edip, letencrypt-auto buýrugyny işlediň. şahadatnama döretmek isleýän her bir domeniňiz ýa-da kiçi domeniňiz.

$ cd /usr/local/letsencrypt
$ sudo ./letsencrypt-auto certonly --standalone -d your_domain.tld 

6. Lostitirilen açary dikeltmek ýa-da gyssagly duýduryşlar üçin “Let Encrypt” tarapyndan ulanyljak e-poçta salgysyny giriziň.

7. Enter düwmesini basyp, ygtyýarnamanyň şertleri bilen ylalaşyň.

8. Netijede, hemme zat üstünlikli geçen bolsa, terminal konsolyňyzda aşakdaky skrinshot ýaly habar peýda bolmaly.

3-nji ädim: Geliň, Nginx-de SSL şifrlemek şahadatnamasyny guruň

9. Indi SSL şahadatnamaňyz döredilenden soň, ony ulanmak üçin Nginx web serwerini sazlamagyň wagty geldi. Täze SSL şahadatnamalary domen adyňyzyň adyndaky katalogda /etc/letsencrypt/live/ ýerleşdirildi. Domeniňiz üçin berlen Şahadatnama faýllaryny sanamak üçin ls buýrugyny işlediň.

$ sudo ls /etc/letsencrypt/live/
$ sudo ls -al /etc/letsencrypt/live/caeszar.tk

10. Ondan soň, tekst redaktory bilen /etc/nginx/sites-available/default faýly açyň we SSL blokunyň başlangyjyny kesgitleýän ilkinji düşündiriş setirinden soň aşakdaky blok goşuň. Gollanma hökmünde aşakdaky skrinshoty ulanyň.

$ sudo nano /etc/nginx/sites-enabled/default

Nginx blok bölegi:

# SSL configuration
        #
        listen 443 ssl default_server;
        ssl_certificate /etc/letsencrypt/live/caeszar.tk/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/caeszar.tk/privkey.pem;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
        ssl_dhparam /etc/nginx/ssl/dhparams.pem;

SSL şahadatnamalary üçin domen adynyň bahalaryny çalyşyň.

11. Indiki ädimde aşakdaky buýruklary işledip serweriňizi Logjam hüjüminden goramak üçin/etc/nginx/ssl/katalogynda güýçli Diffie-Hellman şifrini dörediň.

$ sudo mkdir /etc/nginx/ssl
$ cd /etc/nginx/ssl
$ sudo openssl dhparam -out dhparams.pem 2048

12. Netijede, üýtgeşmeleri görkezmek üçin Nginx daemonyny täzeden açyň.

$ sudo systemctl restart nginx

we aşakdaky URL-e girip SSL şahadatnamaňyzy barlaň.

https://www.ssllabs.com/ssltest/analyze.html

4-nji ädim: Nginx şahadatnamalaryny şifrläliň

13. “Let Encrypt CA” tarapyndan berlen şahadatnamalar 90 gün dowam edýär. Möhleti gutarýança faýllary awtomatiki täzelemek üçin aşakdaky mazmunly /usr/local/bin/ katalogynda ssl-renew.sh baş skriptini dörediň.

$ sudo nano /usr/local/bin/ssl-renew.sh

Aşakdaky mazmuny ssl-renew.sh faýlyna goşuň.

#!/bin/bash

cd /usr/local/letsencrypt
sudo ./letsencrypt-auto certonly -a webroot --agree-tos --renew-by-default --webroot-path=/var/www/html/ -d your_domain.tld
sudo systemctl reload nginx
exit 0

Nginx resminama köküňize gabat gelmek üçin --webroot-path üýtgeýjisini çalyşyň. Aşakdaky buýrugy bermek bilen skriptiň ýerine ýetirilýändigine göz ýetiriň.

$ sudo chmod +x /usr/local/bin/ssl-renew.sh

14. Ahyrynda, şahadatnamaňyzyň möhleti gutarmanka takmynan 30 günüň içinde täzelenjekdigine kepil geçmek üçin her iki aýda ýary gije skript işletmek üçin kron işini goşuň.

$ sudo crontab -e

Faýlyň aşagyna aşakdaky setiri goşuň.

0 1 1 */2 * /usr/local/bin/ssl-renew.sh >> /var/log/your_domain.tld-renew.log 2>&1

Bu! Nginx serweriňiz indi mugt Let Encrypt SSL şahadatnamasyny ulanyp SSL mazmunyna hyzmat edýär.