วิธีการตั้งค่า Let’s Encrypt SSL บน Ubuntu 18.04 & 16.04 LTS แบบโดเมนเนมเดียว (Standalone)

Let’s Encrypt เป็นผู้ออกใบรับรอง (CA) ที่ให้บริการใบรับรอง SSL / TLS ฟรี คุณสามารถรับใบรับรอง SSL ที่ถูกต้องสำหรับโดเมนของคุณโดยไม่มีค่าใช้จ่าย ใบรับรองเหล่านี้สามารถใช้งานจริงในระดับองค์กรได้ แต่จะขอใบรับรองได้เซิร์ฟเวอร์นั้นต้องมีการจดโดเมนเนมไว้แล้วเท่านั้น Let’s Encrypt จะทำการตรวจสอบ DNS สำหรับโดเมนโดเมนและจะชี้ไปยังไอพีแอดเดรสของเซิร์ฟเวอร์นั้นๆ หลังจากตรวจสอบเรียบร้อยก็จะออกใบรับรองให้คุณ บทความนี้จะช่วยสอนให้คุณติดตั้ง SSL Certificate บนระบบปฏิบัติการ Ubuntu

ขั้นตอนที่ 1 ตรวจสอบ Prerequisites ของระบบก่อนทำการติดตั้ง
• สามารถใช้งาน Ubuntu ด้วยยูเซอร์รูทได้ (user root access)
• เว็บเซิร์ฟเวอร์ที่ติดตั้งต้องมีโดเมนเนมที่เป็น Public IP address เช่น xyz.com, www.xyz.com และสามารถชี้ไปยังเซิร์ฟเวอร์ของ Let’s Encrypt ได้
• เว็บเซิร์ฟเวอร์ที่เป็น VirtualHost ที่ตั้งค่าไว้สำหรับ xyz.com, www.xyz.com จะต้องใช้งานบนพอร์ต หมายเลข 80

ขั้นตอนที่ 2 ติดตั้ง Let’s Encrypt Client
ดาวน์โหลด certbot-auto let’s encrypt client และบันทึกภายใต้ path /usr/sbin โดยใช้คำสั่งดังนี้

$ sudo wget https://dl.eff.org/certbot-auto -O /usr/sbin/certbot-auto

$ sudo chmod a+x /usr/sbin/certbot-auto

ขั้นตอนที่ 3 การออกใบรับรอง SSL Certificate
Let’s Encrypt ทำการตรวจสอบโดเมนที่โดยอัตโนมัติพร้อมการทำ challenges เพื่อยืนยันความเป็นเจ้าของโดเมน เมื่อ Certificate Authority (CA) ตรวจสอบความถูกต้องของโดเมนของคุณแล้วจะมีการออกใบรับรอง SSL โดยใช้คำสั่งดังนี้

$ sudo certbot-auto certonly –standalone -d xyz.com  -d www.xyz.com

ในระหว่างการตรวจสอบจะมีถามคำถามอีกสองสามข้อ ในการระบุที่อยู่อีเมลซึ่งใช้สำหรับส่งการแจ้งเตือนทางอีเมลที่เกี่ยวข้องกับการต่ออายุ และการหมดอายุของ SSL หลังจากเสร็จสิ้นก็จะออกใบรับรอง SSL และจะสร้างไฟล์ที่ใช้สำหรับกำหนดค่าใน VirtualHost ใหม่ในระบบของคุณ
ไฟล์ที่ได้:
cert.pem, chain.pem, fullchain.pem, privkey.pem

ขั้นตอนที่ 4 ตั้งค่า SSL VirtualHost
ใช้การตั้งค่าต่อไปนี้สำหรับเว็บเซิร์ฟเวอร์ Apache และ Nginx ให้แก้ไขไฟล์กำหนดค่า VirtualHost และเพิ่มรายการด้านล่างสำหรับใช้งาน certificate

$ nano /etc/apache2/sites-available/xyz.com.com-ssl.conf

สำหรับ Apache :

SSLEngine on

SSLCertificateFile /etc/letsencrypt/live/xyz.com/fullchain.pem

SSLCertificateKeyFile /etc/letsencrypt/live/xyz.com/privkey.pem

ขั้นตอนที่ 5 สั่งให้ apache2 รับ site ใหม่
สั่งให้ apache2 รับ site ใหม่ด้วยคำสั่ง

$ a2ensite xyz.com.com-ssl.conf

คำสั่งในการตรวจสอบอายุของ SSL certificate

$ echo | openssl s_client -connect xyz.com:443 2>/dev/null | openssl x509 -noout -dates

ขั้นตอนที่ 6 การตั้งค่าสคริปต์ให้รันทุกๆ 60 วัน โดยเพิ่มเข้าไปใน crontab (user root)

$ crontab –e

0 0 */60 * *  /usr/sbin/certbot-auto -q renew

ศึกษาเพิ่มเติมได้ที่ : https://letsencrypt.org/

อ้างอิงจาก : https://www.dn59-kmutnb.com/