เว็บไซต์รวมถึงการเข้ารหัส SSL/TLS สำหรับโดเมนเพื่อดึงดูดผู้เข้าชม บทความนี้อธิบายการใช้ยูทิลิตี้ CERTBOT เพื่อรับใบรับรอง TLS/SSL สำหรับ NGINX
ภาพรวม
เว็บไซต์ใด ๆ ที่พยายามดึงดูดผู้เข้าชมจะต้องรวมการเข้ารหัส 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 ของเรา คุณใช้โปรโตคอลการเข้ารหัสแบบใดเพื่อให้ความปลอดภัยด้านการสื่อสารผ่านเครือข่ายคอมพิวเตอร์? หากคุณมีคำถามใด ๆ โปรด _ ติดต่อกลับ
สำรวจ
คุณอาจพบลิงก์ที่เกี่ยวข้องต่อไปนี้เพื่อตรวจสอบประสิทธิภาพของเซิร์ฟเวอร์และสร้างความมั่นใจในความน่าเชื่อถือและความปลอดภัย: