บทความก่อนหน้านี้ได้แนะนำ การติดตั้ง Let’s Encrypt ร่วมกับ Apache บน CentOS 7 ไปแล้ว สำหรับบทความในนี้จะขอแนะนำการติดตั้ง Let’s Encrypt ร่วมกับ Nginx บน CentOS 7

หลังจากที่ดำเนินการติดตั้ง CentOS รวมทั้งดำเนินการ update package manager ต่างๆ ให้เรียบร้อยแล้ว จึงมาเริ่มดำเนินการติดตั้งตามขั้นตอนดังนี้

ขั้นตอนที่ 1 – ติดตั้ง Nginx

ในกรณีที่ยังไม่ได้ทำการติดตั้ง Nginx สามารถติดตั้ง Nginx จาก Epel repositories

ขั้นตอนที่ 2 – ติดตั้งแพคเกจที่ต้องใช้สำหรับ Let’s Encrypt

สำหรับการติดตั้งแพคเกจจำเป็นสำหรับ Let’s Encrypt client บนระบบ Linux ที่รวดเร็วแนะนำให้ติดตั้งจาก github repositories

ขั้นตอนที่ 3 – การสร้าง SSL Certificate สำหรับ Nginx

การติดตั้งฟรี SSL Certificate สำหรับ Nginx ด้วยตัวเอง โดยใช้ Standalone plugin

ตรวจสอบ port 80 ว่าใช้งานอยู่หรือไม่

หากพบว่ามีการทำงานอยู่ให้ทำการ stop service

***การสร้าง free SSL Certificate โดยในที่นี้ให้เปลี่ยนข้อมูลโดเมนเป็นข้อมูลจริงของท่าน แทนค่า letsencrypt.thaivs.com (โดเมนตัวอย่างของบทความ)

กรอกอีเมล์ของท่านที่ใช้ในกรณีติดต่อและจากนั้นให้ยอมรับเงื่อนไข

ติดตั้งเรียบร้อย จะพบข้อความแสดงอายุของ Certificate (มีอายุ 90 วัน นับจากวันที่ติดตั้ง)

ขั้นตอนที่ 4 – การติดตั้ง SSL Certificate สำหรับ Nginx

ไฟล์ของ SSL Certificate จะวางอยู่ที่ /etc/letsencrypt/live/

การติดตั้ง SSL Certificate สำหรับ Nginx ให้ทำการเปิดไฟล์ /etc/nginx/nginx.conf

และวางข้อความดังนี้ภายในไฟล์

ทำการ restart Nginx

เมื่อติดตั้งเรียบร้อยแล้ว เรามาตรวจสอบ SSL Certificate ที่เราได้ติดตั้งกัน โดยตรวจสอบได้ที่ (ทำการทดสอบแบบมีและไม่มี www)

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

ในกรณีที่ตรวจสอบพบเกรดเท่าหรือต่ำกว่า B สามารถทำการ generate ค่า Diffie-Hellman ใหม่

Diffie–Hellman (DH) เป็นกระบวนการสร้าง “ความลับ” ระหว่างกันโดยไม่ต้องส่งความลับนั้นถึงกันจริงๆ โดยทั่วไปแล้วความลับที่ว่าคือการแลก “กุญแจ” สำหรับการเข้ารหัสแบบกุญแจสมมาตรเพื่อส่งข้อมูลถึงกันต่อไป

หลังจาก generate ค่า Diffie-Hellman เรียบร้อยแล้ว ให้ทำการเปิดไฟล์ /etc/nginx/nginx.conf และวางข้อความดังนี้ภายในไฟล์ เพิ่มเติมจากข้อความเดิมก่อนหน้า

และ restart Nginx

เรามาตรวจสอบ SSL Certificate กันอีกครั้ง ให้ทำการกด Clear cache และทดสอบแบบมีและไม่มี www

ขั้นตอนที่ 5 – การตั้งค่าต่ออายุ Let’s Encrypt

Let’s Encrypt แบบ free SSL certificates จะมีอายุ 90 วัน ในที่นี้เราจะใช้ webroot plugin ในการต่ออายุ

เพื่อให้การต่ออายุ SSL certificates ได้แบบอัตโนมัติ ให้ทำการสร้าง script ไว้ที่ /usr/local/bin/

และวางข้อความดังนี้ภายในไฟล์ (ตรวจสอบค่าตัวแปร $webpath ให้ถูกต้อง ตาม path ที่ท่านใช้งาน)

 

เมื่อดำเนินการวาง script เรียบร้อยแล้ว ให้ทำการตั้งค่า executable และติดตั้ง bc

และทดสอบ script

ในที่สุดเราก็ตั้งค่าการต่ออายุ SSL certificates อัตโนมัติไว้พร้อมแล้ว เรามาตั้ง cron เพื่อให้ run script ทุกๆ อาทิตย์ เพื่อให้ตรวจสอบและต่ออายุก่อน 30 วัน

และวางข้อความดังนี้ภายในไฟล์