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.
- Ubuntu we Debian-da mugt şifrlemek bilen ygtybarly Apache
- RHEL we CentOS-da Apache-ni ygtybarly üpjün etmek üçin SSL-i şifrlemek
- Serweriňiziň IP adresine salgylanmak üçin dogry DNS
A
ýazgylary bilen hasaba alnan domen. - 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.