เว็บไซต์รวมถึงการเข้ารหัส SSL/TLS สำหรับโดเมนเพื่อดึงดูดผู้เข้าชม บทความนี้อธิบายการใช้ยูทิลิตี้ CERTBOT เพื่อรับใบรับรอง TLS/SSL สำหรับ NGINX

รักษาความปลอดภัย nginx ด้วยการเข้ารหัสของ ubuntu

ภาพรวม

เว็บไซต์ใด ๆ ที่พยายามดึงดูดผู้เข้าชมจะต้องรวมการเข้ารหัส TLS/SSL สำหรับโดเมน ใบรับรองฟรี SSL ให้แน่ใจว่าการเชื่อมต่อที่ปลอดภัยระหว่างเว็บเซิร์ฟเวอร์ของคุณต้องการเข้ารหัสและปลอดภัย Nginx และเบราว์เซอร์แอปพลิเคชัน Let’s Encrypt เป็นหน่วยงานประกาศนียบัตรฟรีอัตโนมัติและเปิดที่อนุญาตให้คุณตั้งค่าการป้องกันดังกล่าวสำหรับ Nginx SSL LetsEncrypt Let’s Encrypt ใบรับรอง SSL ฟรีได้รับความไว้วางใจจากเบราว์เซอร์หลัก ๆ ทั้งหมดและใช้ได้กับ 90 วันถัดไปนับจากวันที่ออก โพสต์บล็อกนี้อธิบายวิธีที่ง่ายที่สุดในการเข้ารหัสและรักษาความปลอดภัย Nginx ที่ใช้งานเว็บเซิร์ฟเวอร์บน Ubuntu 20.04 / 18.04 โดยการได้รับใบรับรอง Nginx HTTPS LetsEncrypt โดยใช้ยูทิลิตี้ Nginx CertBot และตั้งค่าใบรับรองของคุณเพื่อต่ออายุโดยอัตโนมัติ มาเริ่มและตั้งค่า LetSencrypt Ubuntu Nginx การกำหนดค่า

  • การพึ่งพาและข้อกำหนดเบื้องต้น
  • การติดตั้ง CertBot Utility
  • ยืนยันการกำหนดค่าของ Nginx
  • อนุญาตให้ https ผ่านไฟร์วอลล์
  • รับใบรับรอง SSL
  • บทสรุป

สิ่งแรกสิ่งแรก: การพึ่งพาและข้อกำหนดเบื้องต้น

ในการติดตามบทความนี้คุณจะต้องติดตามการพึ่งพาและข้อกำหนดเบื้องต้นในการติดตั้ง Ubuntu Nginx Utilities:

  • ผู้ใช้ที่ไม่ใช่รูทหรือรูทที่เปิดใช้งาน Sudo บนเครื่องท้องถิ่น/รีโมต
  • ระบบที่ใช้ Ubuntu 20.04 หรือ Ubuntu 18.04
  • การเข้าถึงเทอร์มินัลบรรทัดคำสั่ง
  • สิทธิพิเศษของ sudo หรือรูทบนเครื่องท้องถิ่น/รีโมท
  • ติดตั้งและตั้งค่า Nginx
  • ชื่อโดเมนที่ลงทะเบียนชี้ไปที่ IP สาธารณะ
  • บล็อกเซิร์ฟเวอร์ที่กำหนดค่าสำหรับชื่อโดเมนนั้น
  • ไฟร์วอลล์ได้รับการกำหนดค่าให้ยอมรับการเชื่อมต่อบนพอร์ต 80 และ 443

ขั้นตอนที่ 1 - การติดตั้ง certbot

ขั้นตอนแรกสำหรับการรักษาความปลอดภัย Nginx และเข้ารหัส Nginx ด้วย Let’s Encrypt คือการติดตั้ง Nginx CertBot ที่มีคุณสมบัติครบถ้วนและใช้งานง่ายสำหรับการรับและต่ออายุใบรับรอง SSL ของ Let’s Encrypt บนเซิร์ฟเวอร์ของคุณ ในการทำเช่นนั้นเริ่มต้นด้วยการเปิดเทอร์มินัลบน Ubuntu และอัปเดตที่เก็บในท้องถิ่น พิมพ์ y และป้อนหากได้รับแจ้ง

sudo apt update
sudo apt install certbot python3-certbot-nginx

ตอนนี้ให้ตรวจสอบการตั้งค่าการกำหนดค่า Nginx Secure บางอย่าง

ขั้นตอนที่ 2 - ยืนยันการกำหนดค่าของ Nginx

ตามที่อธิบายไว้ในส่วนการพึ่งพาและข้อกำหนดเบื้องต้นคุณควรมีโดเมนที่ลงทะเบียนแล้วและ CERTBOT จำเป็นต้องสามารถค้นหาบล็อกเซิร์ฟเวอร์ Nginx ที่ถูกต้องสำหรับโดเมนนั้นเพื่อกำหนดค่า SSL โดยอัตโนมัติ ตัวอย่างเช่นโพสต์บล็อกนี้ใช้ domain blog.containerize.com และบล็อกเซิร์ฟเวอร์สำหรับโดเมนของคุณที่ /etc/nginx/sites-available/blog.containerize.com พร้อมคำสั่ง Server_name ตั้งค่าไว้อย่างถูกต้องแล้ว ในการยืนยันให้เปิดไฟล์การกำหนดค่าสำหรับโดเมนของคุณโดยใช้นาโนหรือตัวแก้ไขข้อความที่คุณชื่นชอบ:

sudo nano /etc/nginx/sites-available/blog.containerize.com

ค้นหาบรรทัดคำสั่ง server_name ที่มีอยู่ในไฟล์ /etc/nginx/sites-available/blog.containerize.com ควรมีลักษณะเช่นนี้:

...
server_name blog.containerize.com www.blog.containerize.com;
...

ตอนนี้ตรวจสอบไวยากรณ์ของไฟล์กำหนดค่า Nginx ของคุณและโหลดเซิร์ฟเวอร์ Nginx ของคุณซ้ำเพื่อโหลดการตั้งค่าการกำหนดค่าใหม่:

sudo nginx -t
sudo systemctl reload nginx

ตอนนี้ CertBot Utility สามารถค้นหาคำสั่งบล็อก Nginx Server ที่ถูกต้องเพื่อรักษาความปลอดภัย NGINX และอัปเดตโดยอัตโนมัติ ในขั้นตอนถัดไปให้อัปเดตไฟร์วอลล์เพื่ออนุญาตการรับส่งข้อมูล HTTPS

ขั้นตอนที่ 3 - อนุญาต HTTPS ผ่านไฟร์วอลล์

ตามที่แนะนำในบทความนี้ข้อกำหนดเบื้องต้นคุณจะต้องปรับการตั้งค่าเพื่ออนุญาตการรับส่งข้อมูล HTTPS เพื่อให้แน่ใจว่าไฟร์วอลล์ของคุณเปิดใช้งานและใช้งานอยู่ให้เรียกใช้คำสั่งด้านล่าง:

sudo ufw status

เอาต์พุตควรบอกคุณว่า UFW ทำงานอยู่และให้รายการกฎชุด จะแสดงเฉพาะการรับส่งข้อมูล HTTP บนเว็บเซิร์ฟเวอร์ ในการอนุญาตการรับส่งข้อมูลที่เข้ารหัสคุณสามารถเพิ่มโปรไฟล์ NGINX HTTPS หรือใช้ NGINX เต็มและลบกฎ NGINX HTTP ที่มีอยู่ อนุญาตการรับส่งข้อมูล NGINX HTTPS โดยพิมพ์คำสั่ง:

sudo ufw allow 'Nginx Full'
sudo ufw delete allow 'Nginx HTTP'

ตรวจสอบกฎ HTTPS ที่อนุญาตการรับส่งข้อมูล HTTPS โดยการพิมพ์คำสั่งสถานะ UFW:

sudo ufw status

ถัดไปให้เรียกใช้ CertBot และรับใบรับรองของเรา

ขั้นตอนที่ 4 - ได้รับใบรับรอง SSL

ปลั๊กอินของ NGINX สำหรับ CERTBOT จะดูแลการกำหนดค่าใหม่ของ NGINX และโหลดการกำหนดค่าใหม่เมื่อจำเป็น ดังนั้นมีเพียงคุณเท่านั้นที่ต้องสร้างใบรับรองด้วย Nginx Plug - in โดยดำเนินการคำสั่งต่อไปนี้:

sudo certbot --nginx -d blog.containerize.com -d www.blog.containerize.com

หากนี่เป็นครั้งแรกที่คุณเรียกใช้ยูทิลิตี้ CertBot แล้ว CertBot ขอให้คุณกำหนดค่าการตั้งค่า HTTPS ของคุณ คุณจะได้รับแจ้งให้ป้อนที่อยู่อีเมลและยอมรับข้อกำหนดในการให้บริการ หลังจาก HIT Enter การกำหนดค่าจะได้รับการอัปเดตและ NGINX จะโหลดซ้ำเพื่อรับการตั้งค่าใหม่ ในที่สุด CertBot จะแสดงด้วยข้อความที่บอกคุณว่ามีการสร้างใบรับรองสำเร็จและจัดเก็บใบรับรองของคุณ ใบรับรองของคุณจะถูกดาวน์โหลดติดตั้งและโหลดด้วยการกำหนดค่า LetSenCrypt ใบรับรอง NGINX SSL ลองโหลดเว็บไซต์ของคุณซ้ำโดยใช้ https: // และสังเกตเห็นตัวบ่งชี้ความปลอดภัยของเบราว์เซอร์ของคุณ ควรระบุว่าไซต์มีความปลอดภัยอย่างเหมาะสมโดยปกติจะมีไอคอนล็อค หากคุณทดสอบเซิร์ฟเวอร์ของคุณโดยใช้การทดสอบเซิร์ฟเวอร์ SSL Labs จะได้รับเกรด A สำหรับ NGINX และ LETSENCRYPT มาเสร็จสิ้นโดยการทดสอบกระบวนการต่ออายุ

ขั้นตอนที่ 5-การตรวจสอบ CertBot Auto-Renewal

เนื่องจากการเข้ารหัสใบรับรองจะหมดอายุทุก ๆ เก้าสิบ (90) วันและ Nginx SSL LetsEncrypt สนับสนุนให้ผู้ใช้ตั้งค่าและงานต่ออายุอัตโนมัติ ก่อนอื่นให้เปิดไฟล์ contab configuration สำหรับผู้ใช้ปัจจุบัน:

sudo crontab -e

เพิ่มงาน cron ที่เรียกใช้คำสั่ง certbot, CertBot Renew Nginx ต่ออายุใบรับรองหากตรวจพบใบรับรองจะหมดอายุภายใน 30 วัน กำหนดเวลาให้ทำงานทุกวันตามเวลาที่กำหนดเช่น 05:00 น.

sudo certbot renew --dry-run

งาน cron ควรมีแอตทริบิวต์ –quiet เช่นเดียวกับในคำสั่งด้านบน สิ่งนี้จะสั่งให้ใบรับรอง Nginx Renew SSL ไม่รวมเอาท์พุทใด ๆ หลังจากปฏิบัติงาน เปิดใช้งานการต่ออายุใบรับรองอัตโนมัติ เมื่อคุณเพิ่มงาน cron ให้บันทึกการเปลี่ยนแปลงและออกจากไฟล์

บทสรุป

ในบทความนี้เราได้เรียนรู้วิธีการติดตั้งใบรับรอง SSL LetsEncrypt เราดาวน์โหลดใบรับรอง SSL สำหรับโดเมนของคุณและกำหนดค่า Nginx เพื่อใช้ใบรับรองเหล่านี้ นอกจากนี้คุณควรเปิดใช้งาน CertBot เพื่อต่ออายุใบรับรองโดยอัตโนมัติสำหรับ SSL Nginx LetSencrypt ในบทช่วยสอนที่กำลังจะมาถึงเราจะหารือเกี่ยวกับหัวข้อที่น่าสนใจมากขึ้นเกี่ยวกับวิธีการรักษาความปลอดภัยเว็บเซิร์ฟเวอร์ด้วยเทคโนโลยีความปลอดภัยมาตรฐานที่เปิดใช้งานการสื่อสารที่เข้ารหัสระหว่างเว็บเบราว์เซอร์และเว็บเซิร์ฟเวอร์ _your สามารถเข้าร่วมกับเราได้ที่ Twitter, LinkedIn และหน้า Facebook ของเรา คุณใช้โปรโตคอลการเข้ารหัสแบบใดเพื่อให้ความปลอดภัยด้านการสื่อสารผ่านเครือข่ายคอมพิวเตอร์? หากคุณมีคำถามใด ๆ โปรด _ ติดต่อกลับ

สำรวจ

คุณอาจพบลิงก์ที่เกี่ยวข้องต่อไปนี้เพื่อตรวจสอบประสิทธิภาพของเซิร์ฟเวอร์และสร้างความมั่นใจในความน่าเชื่อถือและความปลอดภัย: