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/