ติดตั้ง SSL จาก Let’s Encrypt สำหรับ Nginx บน CentOS 6.x (VESTACP)

Let’s Encrypt เป็นฟรี SSL ที่ทำให้เว็บมี https เป็นของตัวเองไม่พูดพร่ำทำเพลงเริ่ม วิธีติดตั้ง HTTPS จาก Let’s Encrypt สำหรับ Nginx บน CentOS 7/6 เลยแล้วกันครับ ตรงนี้จะมีแทรกพวก Path Config เล็กน้อย เพราะว่าตัวผมเองใช้ VESTACP พวกที่เก็บไฟล์โฟลเดอร์อาจจะมีต่างบ้าง แต่จะยังคง Path เดิมของ Nginx

วิธีติดตั้ง Let’s Encrypt

1. ถ้าไม่มี git ให้ติดตั้งก่อนเลย

2.เมื่อติดตั้ง git เสร็จให้เข้าโฟลเดอร์ /opt และ clone letsencrypt มาไว้ใน server

3. ให้เข้าโฟลเดอร์ /opt/letsencrypt เพื่อเริ่มให้ Let’s Encrypt สร้างใบรับรองให้กับ Domain ของเรา (อย่าลืมเปลี่ยน path ที่เก็บเว็บและชื่อเว็บ)

4.จะมีหน้าจอสีน้ำเงินให้กรอกอีเมล์ของเรา และปุ่ม Agree ยอมรับข้อตกลง ก็ทำตามขั้นตอนไป ถ้าสำเร็จจะได้รูปแบบประมาณนี้

5. ตรวจสอบว่าได้สร้างไฟล์ Certificate แล้วหรือยัง

ถ้ามีจะแสดงโฟลเดอร์เว็บเรา และไฟล์ Certificate ประมาณนี้

6.ทำการติดตั้งใน Nginx และเปิดการใช้งาน SSL ให้เข้าไปที่ไฟล์ /etc/nginx/nginx.conf

*ส่วนใครใช้ VESTACP นั้น path จะเป็นลักษณะนี้ /home/$user/conf/web/nginx.conf (แก้ไข $user ตาม Server ของคุณ) และทำการแก้ไข/เพิ่ม SSL configuration ใน Server block ตามด้านล่างนี้ (เปลี่ยน path ให้ตรงกับที่สร้างมาด้านบน)

ทำการ Reload Nginx

วิธีต่ออายุ Let’s Encrypt อัตโนมัติ

เนื่องจาก Cert นั้นมีอายุ 90 วัน ดังนั้นหากเรามาต่ออายุทุกครั้งอาจจะไม่สะดวกนัก จึงต้องมีวิธีการต่ออายุอัตโนมัติดังนี้

1.เริ่มต้นทำการสร้างการต่ออายุด้วยคำสั่งดังนี้ (เปลี่ยน webroot-path และชื่อเว็บให้ตรงกับคุณ)

ถ้าสำเร็จจะได้รูปแบบประมาณนี้

2. ทำการสร้าง  bash script  ไฟล์ สำหรับตรวจสอบวันหมดอายุและต่ออายุอัตโนมัติ

ให้เพิ่ม script ตามด้านล่างนี้ (เปลี่ยนที่อยู่ตัวแปร $webpath)

3.เพื่อให้แน่ใจว่า script ทำงานได้ และ bc calculator (โปรแกรมคำนวณเลข) ได้ถูกติดตั้งแล้วให้ใช้คำสั่งนี้อีกครั้ง

และลองทดสอบการทำงาน ตามคำสั่งนี้

ผลลัพท์จะได้ประมาณนี้

4.และสุดท้ายทำการตั้ง Cron job เพื่อให้ทำงาน Script ตรวจสอบการหมดอายุและต่ออายุทุกสัปดาห์

เพิ่มคำสั่งตามด้านล่างนี้

จากนั้นสั่ง restart crontab

และลองแสดงรายการที่ตั้งเวลาไว้ใน crontab อีกครั้งว่าค่าถูกต้องหรือไม่

เท่านี้เราก็จะมี SSL จาก Let’s Encrypt ใช้ฟรีได้แล้ว ลองเข้าเว็บ https://www.sslshopper.com/ เพื่อตรวจสอบ  SSL certificate อีกครั้งว่าสามารถใช้ HTTPS ได้อย่างสมบูรณ์

สำหรับบทความนี้หวังว่าคงมีประโยชน์กับทุกท่านนะครับ

อ้างอิง : http://www.tecmint.com/setup-https-with-lets-encrypt-ssl-certificate-for-nginx-on-centos/

Author:

(ตั้ม) ศิริชัย ธีรภัทรสกุล เป็นเว็บโปรแกรมเมอร์ และบล็อกเกอร์ สนใจเรื่องการพัฒนาตัวเอง หลงใหลการถ่ายรูป เวลาว่างมักชอบอ่านหนังสือ ปัจจุบันผมยังรับพัฒนาเว็บไซต์ หากสนใจสามารถติดต่อสอบถามได้ครับ