ວິທີການຮັບປະກັນ Nginx ດ້ວຍການປ່ອຍຂໍ້ມູນເຂົ້າລະຫັດໃນ Ubuntu ແລະ Debian
ປະຕິບັດຕາມບົດແນະ ນຳ ຂອງ Let’s Encrypt ກ່ຽວກັບ Apache SSL, ໃນບົດຄວາມນີ້ພວກເຮົາຈະປຶກສາຫາລືກ່ຽວກັບວິທີການສ້າງແລະຕິດຕັ້ງໃບຢັ້ງຢືນ SSL/TLS ຟຣີທີ່ອອກໂດຍ Let’s Encrypt CA ສຳ ລັບ Nginx webserver ໃນ Ubuntu ຫຼື Debian.
<
<
ຂັ້ນຕອນທີ 1: ການຕິດຕັ້ງ Nginx Web Server
1. ໃນຂັ້ນຕອນ ທຳ ອິດຕິດຕັ້ງ Nginx web server, ຖ້າບໍ່ໄດ້ຕິດຕັ້ງຢູ່ແລ້ວ, ໂດຍການອອກ ຄຳ ສັ່ງຂ້າງລຸ່ມນີ້:
$ sudo apt-get install nginx
ຂັ້ນຕອນທີ 2: ສ້າງໃບຢັ້ງຢືນ SSL ຂອງ Let’s encryption SSL ສຳ ລັບ Nginx
2. ກ່ອນທີ່ຈະຜະລິດໃບຢັ້ງຢືນ SSL/TLS ໂດຍບໍ່ເສຍຄ່າ, ໃຫ້ຕິດຕັ້ງໂປແກຼມ Encrypt ຂອງ Let ໃຫ້ຢູ່ໃນລະບົບແຟ້ມລະບົບ /usr/local/
ໂດຍການຊ່ວຍເຫຼືອຂອງ git client ໂດຍການອອກ ຄຳ ສັ່ງຂ້າງລຸ່ມນີ້:
$ sudo apt-get -y install git $ cd /usr/local/ $ sudo git clone https://github.com/letsencrypt/letsencrypt
3. ເຖິງແມ່ນວ່າຂັ້ນຕອນໃນການໄດ້ຮັບໃບຢັ້ງຢືນ Nginx ແມ່ນອັດຕະໂນມັດ, ທ່ານຍັງສາມາດສ້າງແລະຕິດຕັ້ງໃບຢັ້ງຢືນ SSL ໂດຍບໍ່ເສຍຄ່າ ສຳ ລັບ Nginx ໂດຍໃຊ້ໂປແກຼມ Let's Encrypt Standalone.
ວິທີການນີ້ຮຽກຮ້ອງໃຫ້ພອດ 80 ບໍ່ຕ້ອງຖືກ ນຳ ໃຊ້ໃນລະບົບຂອງທ່ານເປັນໄລຍະເວລາສັ້ນໆໃນຂະນະທີ່ Let ໃຫ້ລູກຄ້າເຂົ້າລະຫັດຢືນຢັນເອກະລັກຂອງເຊີບເວີກ່ອນທີ່ຈະຜະລິດໃບຢັ້ງຢືນ.
ໃນກໍລະນີທີ່ທ່ານ ກຳ ລັງໃຊ້ Nginx ຢູ່ແລ້ວ, ໃຫ້ຢຸດການບໍລິການໂດຍອອກ ຄຳ ສັ່ງຕໍ່ໄປນີ້.
$ sudo service nginx stop OR $ sudo systemctl stop nginx
ໃນກໍລະນີທີ່ທ່ານ ກຳ ລັງ ດຳ ເນີນການບໍລິການອື່ນທີ່ຜູກຢູ່ໃນ port 80 ຢຸດບໍລິການນັ້ນເຊັ່ນກັນ.
4. ຢືນຢັນວ່າ port 80 ແມ່ນບໍ່ເສຍຄ່າໂດຍການແລ່ນ ຄຳ ສັ່ງ netstat:
$ sudo netstat -tlpn | grep 80
5. ດຽວນີ້ເຖິງເວລາທີ່ຈະໃຊ້ລະຫັດເພື່ອໃຫ້ໄດ້ໃບຢັ້ງຢືນ SSL. ເຂົ້າສູ່ລະບົບການຕິດຕັ້ງ Let's Encrypt ທີ່ພົບໃນເສັ້ນທາງລະບົບ/usr/local/letsencrypt ແລະ ດຳ ເນີນການ commandencrypt-auto ໂດຍໃຫ້ທາງ --standalone
ທີ່ມີໃບຍ້ອງຍໍແລະ ໝາຍ
$ cd /usr/local/letsencrypt $ sudo ./letsencrypt-auto certonly --standalone -d your_domain.tld
6. ກະລຸນາໃສ່ທີ່ຢູ່ອີເມວເຊິ່ງຈະຖືກໃຊ້ໂດຍ Let’s Encrypt ສຳ ລັບການກູ້ຄືນຂໍ້ມູນ ສຳ ຄັນຫຼືການແຈ້ງເຕືອນທີ່ຮີບດ່ວນ.
7. ຕົກລົງເຫັນດີກັບເງື່ອນໄຂຂອງໃບອະນຸຍາດໂດຍກົດປຸ່ມ Enter.
8. ສຸດທ້າຍ, ຖ້າທຸກຢ່າງປະສົບຜົນ ສຳ ເລັດ, ຂໍ້ຄວາມທີ່ຄ້າຍຄືກັບ ໜ້າ ຈໍຂ້າງລຸ່ມນີ້ຄວນຈະປາກົດຢູ່ເທິງ console ຂອງທ່ານ.
ຂັ້ນຕອນທີ 3: ຕິດຕັ້ງ Let’s encryption SSL Certificate ໃນ Nginx
9. ຕອນນີ້ໃບຢັ້ງຢືນ SSL ຂອງທ່ານຖືກສ້າງຂື້ນມາແມ່ນເວລາທີ່ຈະ ກຳ ນົດ Nginx webserver ເພື່ອໃຊ້ມັນ. ໃບຢັ້ງຢືນ SSL ໃໝ່ໆ ແມ່ນຖືກຈັດໃສ່ໃນ /etc/letsencrypt/live/
ພາຍໃຕ້ໄດເລກະທໍລີທີ່ມີຊື່ຫຼັງຊື່ໂດເມນຂອງທ່ານ. ດໍາເນີນການຄໍາສັ່ງ ls ເພື່ອລາຍຊື່ໄຟລ໌ໃບຢັ້ງຢືນທີ່ອອກສໍາລັບໂດເມນຂອງທ່ານ.
$ sudo ls /etc/letsencrypt/live/ $ sudo ls -al /etc/letsencrypt/live/caeszar.tk
10. ຕໍ່ໄປ, ເປີດ /etc/nginx/sites-available/default
ແຟ້ມກັບບັນນາທິການຕົວ ໜັງ ສືແລະເພີ່ມທ່ອນໄມ້ຕໍ່ໄປນີ້ຫຼັງຈາກເສັ້ນ ຄຳ ເຫັນຄັ້ງ ທຳ ອິດທີ່ລະບຸຈຸດເລີ່ມຕົ້ນຂອງທ່ອນໄມ້ SSL. ໃຊ້ ໜ້າ ຈໍຂ້າງລຸ່ມນີ້ເປັນ ຄຳ ແນະ ນຳ.
$ sudo nano /etc/nginx/sites-enabled/default
ບົດຄັດຫຍໍ້ຂອງ Nginx:
# 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 ຕາມຄວາມ ເໝາະ ສົມ.
11. ໃນບາດກ້າວຕໍ່ໄປສ້າງ Diffie-Hellman cipher ທີ່ເຂັ້ມແຂງໃນ/etc/nginx/ssl/directory ເພື່ອປົກປ້ອງ server ຂອງທ່ານຕໍ່ກັບການໂຈມຕີ Logjam ໂດຍການແລ່ນ ຄຳ ສັ່ງຕໍ່ໄປນີ້.
$ sudo mkdir /etc/nginx/ssl $ cd /etc/nginx/ssl $ sudo openssl dhparam -out dhparams.pem 2048
12. ສຸດທ້າຍ, ເລີ່ມຕົ້ນ Nginx daemon ເພື່ອສະທ້ອນການປ່ຽນແປງ.
$ sudo systemctl restart nginx
ແລະທົດສອບໃບຢັ້ງຢືນ SSL ຂອງທ່ານໂດຍການເຂົ້າເບິ່ງທີ່ຢູ່ URL ຂ້າງລຸ່ມນີ້.
https://www.ssllabs.com/ssltest/analyze.html
ຂັ້ນຕອນທີ 4: ການຕໍ່ອາຍຸອັດຕະໂນມັດໃຫ້ຂອງເຂົ້າລະຫັດໃບຢັ້ງຢືນ Nginx
13. ໃບຢັ້ງຢືນທີ່ອອກໃຫ້ໂດຍ Let’s Encrypt CA ແມ່ນໃຊ້ໄດ້ 90 ວັນ. ເພື່ອປັບປຸງອັດຕະໂນມັດຕໍ່ແຟ້ມເອກະສານກ່ອນວັນ ໝົດ ອາຍຸການສ້າງລະຫັດ bash ssl-renew.sh
ທີ່ຢູ່ໃນລະບົບ /usr/local/bin/
ທີ່ມີເນື້ອຫາຕໍ່ໄປນີ້.
$ sudo nano /usr/local/bin/ssl-renew.sh
ຕື່ມເນື້ອໃນຕໍ່ໄປນີ້ໃສ່ ssl-renew.sh
file.
#!/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
ທົດແທນການປ່ຽນແປງ --webroot-path
ຕົວປ່ຽນແປງໃຫ້ກົງກັບຮາກເອກະສານ Nginx ຂອງທ່ານ. ໃຫ້ແນ່ໃຈວ່າສະຄິບສາມາດປະຕິບັດໄດ້ໂດຍການອອກ ຄຳ ສັ່ງຕໍ່ໄປນີ້.
$ sudo chmod +x /usr/local/bin/ssl-renew.sh
14. ສຸດທ້າຍເພີ່ມວຽກ cron ເພື່ອແລ່ນສະຄຣິບທຸກໆສອງເດືອນໃນເວລາທ່ຽງຄືນເພື່ອຮັບປະກັນວ່າໃບຢັ້ງຢືນຂອງທ່ານຈະຖືກປັບປຸງໃນປະມານ 30 ວັນກ່ອນທີ່ມັນຈະ ໝົດ ອາຍຸ.
$ sudo crontab -e
ຕື່ມແຖວຕໍ່ໄປນີ້ຢູ່ທາງລຸ່ມຂອງເອກະສານ.
0 1 1 */2 * /usr/local/bin/ssl-renew.sh >> /var/log/your_domain.tld-renew.log 2>&1
ນັ້ນແມ່ນມັນ! ເຊີບເວີ Nginx ຂອງທ່ານ ກຳ ລັງໃຫ້ບໍລິການເນື້ອຫາ SSL ໂດຍໃຊ້ໃບຢັ້ງຢືນ SSL ຂອງ Let’s Encrypt SSL ຟຣີ.