ใบรับรอง SSL ฟรีจาก Let’s Encrypt: ติดตั้งพร้อมใช้งานกับสแต็คซอฟต์แวร์ยอดนิยมได้ทันที
หนึ่งในเรื่องสำคัญที่ต้องจัดการสำหรับแอปพลิเคชันที่ใช้งานจริง คือ การรักษาความปลอดภัยของข้อมูล โดยวิธีพื้นฐานที่นิยมใช้กันมากที่สุดคือ การเข้ารหัสข้อมูลที่ส่งและรับผ่านแอปพลิเคชันด้วย โปรโตคอล HTTPS
ตั้งแต่วันที่ 1 มกราคม 2017 เป็นต้นมา Google Chrome ซึ่งเป็นหนึ่งในเบราว์เซอร์ที่มีผู้ใช้งานมากที่สุด ได้เริ่มแสดงคำเตือนว่าเว็บไซต์ที่มีการขอให้กรอก รหัสผ่านหรือข้อมูลบัตรเครดิต แต่ไม่มีการใช้งาน SSL จะถูกมองว่า “ไม่ปลอดภัย” ซึ่งถือเป็นการเปลี่ยนแปลงสำคัญที่เน้นย้ำว่า การเข้ารหัสผ่าน HTTPS ไม่ใช่แค่ทางเลือก แต่เป็นสิ่งจำเป็น สำหรับความน่าเชื่อถือและความปลอดภัยของเว็บไซต์

การออกและตั้งค่าใบรับรอง SSL แบบกำหนดเอง สำหรับแต่ละโปรเจกต์อาจเป็นงานที่ซับซ้อนและใช้เวลานาน อย่างไรก็ตาม Let’s Encrypt (LE) ซึ่งเป็นผู้ออกใบรับรองแบบ ฟรีและเปิดใช้งานได้อัตโนมัติ ได้ช่วยให้การติดตั้ง SSL ที่เชื่อถือได้กลายเป็นเรื่องง่ายและไม่ยุ่งยาก
แนวโน้มที่เว็บไซต์ทั่วโลกเปลี่ยนมาใช้ HTTPS อย่างแพร่หลาย กำลังผลักดันให้เกิด ระบบอัตโนมัติเต็มรูปแบบ ทั้งในการออกและจัดการใบรับรอง SSL เพื่อตอบโจทย์นี้ นักพัฒนาของ Ruk-com Cloud ได้รวม Let’s Encrypt เข้ากับระบบ Cloud Scripting ซึ่งช่วยให้ไม่ต้องต่ออายุใบรับรองเองอีกต่อไป
ข้อได้เปรียบสำคัญ ของโซลูชันนี้คือการรวม SSL มาให้พร้อมใช้งานกับโหลดบาลานเซอร์ยอดนิยมและเซิร์ฟเวอร์แอปพลิเคชันต่าง ๆ ตั้งแต่เริ่มต้น ช่วยให้สามารถ รักษาความปลอดภัยให้กับแอปพลิเคชันที่รันอยู่บน Ruk-com Cloud ได้โดยอิสระ
สำหรับการใช้งานในรูปแบบ Add-on โซลูชันนี้สามารถติดตั้งได้ง่ายบนคอนเทนเนอร์ใดก็ได้ที่รองรับ SSL แบบกำหนดเอง โดยครอบคลุมเซิร์ฟเวอร์ต่อไปนี้ (และยังมีการขยายรายการต่อเนื่อง):
- Load Balancers – NGINX, Apache LB, HAProxy, Varnish
- Java application servers – Tomcat, TomEE, GlassFish, Payara, Jetty
- PHP application servers – Apache PHP, NGINX PHP
- Ruby application servers – Apache Ruby, NGINX Ruby
หากคุณใช้สแต็กอื่นๆและต้องการใช้ Let’s Encrypt SSL เพียงเพิ่ม Load Balancer ไว้ด้านหน้าแอปพลิเคชัน แล้วติดตั้ง Add-on ได้ทันที ซึ่งระบบจะใช้การยกเลิก SSL ที่ระดับ Load Balancer (SSL Termination) โดยอัตโนมัติในกรณีที่เป็น Topology แบบ Cluster
Let’s Encrypt SSL ทำงานอย่างไร?
ระหว่างการติดตั้ง Add-on Let’s Encrypt ระบบจะดำเนินการโดยอัตโนมัติหลายขั้นตอน ได้แก่:
-
ดาวน์โหลดและกำหนดค่า ไคลเอนต์ Let’s Encrypt (หรือที่เรียกว่า Certificate Management Agent – CMA)
-
ส่งคำขอออกใบรับรองไปยัง Let’s Encrypt CA
-
นำใบรับรองที่ได้รับไปติดตั้งกับซอฟต์แวร์ที่ใช้งานอยู่
-
ตั้งค่า Cron Job สำหรับต่ออายุใบรับรองโดยอัตโนมัติเมื่อใกล้หมดอายุ
ตรวจสอบโดเมน
เมื่อมีการขอใบรับรอง Let’s Encrypt จะทำการตรวจสอบว่าโดเมนนั้นเป็นของผู้ขอจริง โดยจะ:
-
ตรวจสอบ entry point ของ environment ผ่านพอร์ต 80
-
การรับส่ง HTTP ขาเข้าทั้งหมดจะถูกเปลี่ยนเส้นทางไปยัง พอร์ต 12345 ซึ่งใช้สำหรับ CMA Proxy
-
ในกรณีที่เลเยอร์มีหลายโหนด (node) ที่เหมือนกัน ระบบจะเลือก โหนดหลัก เพื่อจัดการคำขอและกำหนด DNAT rule แบบชั่วคราว เพื่อให้การตรวจสอบผ่านโหนดนั้นเพียงจุดเดียว
เมื่อการตรวจสอบชื่อโดเมนสำเร็จแล้ว DNAT rule เหล่านี้จะถูกลบออกโดยอัตโนมัติ
หลังการตรวจสอบเสร็จสิ้น
-
CMA จะสามารถ ขอ ต่ออายุ และเพิกถอนใบรับรอง สำหรับโดเมนที่กำหนดได้
-
จะมีการสร้าง คู่คีย์ SSL ใหม่โดยอัตโนมัติ
-
ใบรับรองที่ออกจะถูกเผยแพร่ไปยังทุกโหนดในเลเยอร์ entry point ผ่าน Jelastic API
-
แอปพลิเคชันจะถูกตั้งค่าให้พร้อมใช้งานผ่าน HTTPS โดยอัตโนมัติ
แม้ว่าขั้นตอนจะดูซับซ้อน แต่ระบบทั้งหมดใช้เวลาเพียงไม่กี่นาทีในการตั้งค่าเสร็จเรียบร้อย
การติดตั้งAdd-On Let’s Encrypt SSL
1. คลิกที่ไอคอน add-on ของ balancer แล้ว กดปุ่ม Install ที่ add-on Let’s Encrypt

2. กรอกโดเมนที่ต้องการจะติดตั้ง Certificate หากไม่กรอกจะใช้เป็นโดเมนของ environment แทน

ขั้นตอนนี้ต้องจัดเตรียม External Domain(s) ชี้มายัง environment ที่ต้องการ ทางเลือกที่เป็นไปได้คือ:
- เว้นว่างไว้จะเป็นการสร้าง SSL certificate ชี้ไปยัง environment ภายในสำหรับการทดสอบ
- กรอกโดเมนที่ใช้จริง สามารถกรอกได้หลายโดเมนโดยขั้นด้วยคอมม่า (,)

สุดท้ายแล้วคลิก install เพื่อเริ่มต้นการติดตั้ง
Note: การติดตั้ง add-on นี้ต้องการ public IP ในการทำงาน ดังนั้นในกรณีที่ environment ไม่มี public IP มันจะทำการเพิ่มให้โดยอัตโนมัติระหว่างการติดตั้ง (ระวังเรื่องการติดตั้ง public IP เพิ่มเติมจะมีค่าใช้จ่าย)
3. ขั้นตอนการติดตั้งจะใช้เวลาสักครู่หนึ่ง เมื่อติดตั้งเสร็จแล้วคุณสามารถเข้าไปตรวจสอบได้ที่ environment Setting > Custom SSL เพื่อดูว่า HTTPS ได้ถูก active แล้วจากวันหมดอายุของ certificate

4. คุณสามารถตรวจสอบความถูกต้องของการติดตั้ง ได้โดยการลองเข้าถึงแอปพลิเคชันผ่าน HTTPS หากสามารถเปิดใช้งานได้ตามปกติและเบราว์เซอร์แสดงว่า การเชื่อมต่อปลอดภัย (Secure) พร้อมสัญลักษณ์แม่กุญแจ แสดงว่าใบรับรอง SSL ถูกติดตั้งและกำหนดค่าอย่างถูกต้องแล้ว
อัพเดทใบรับรอง Let’s Encrypt
ใบรับรอง Let’s Encrypt SSL มีอายุการใช้งาน 90 วัน และจำเป็นต้องมีการต่ออายุเพื่อให้การเข้ารหัสยังคงใช้งานได้อย่างต่อเนื่อง
โดยระบบจะตั้งค่าให้ต่ออายุใบรับรองโดยอัตโนมัติโดยจะเริ่มกระบวนการนี้ ล่วงหน้า 30 วันก่อนวันหมดอายุ และคุณจะได้รับการแจ้งเตือนทางอีเมลเพื่อให้ทราบล่วงหน้า
คุณสามารถดำเนินการอัปเดตใบรับรอง SSL ด้วยตนเองได้ทุกเมื่อโดยทำตามขั้นตอนดังนี้:
-
ไปที่แผงควบคุมของสภาพแวดล้อม (Environment)
-
คลิกที่ ปุ่ม Add-on (โปรแกรมเสริม) ที่อยู่ถัดจากเลเยอร์ที่ติดตั้ง SSL ไว้
-
ภายในแผง Add-on ให้คลิกปุ่ม “Update Now”

นอกจากนี้ คุณยังสามารถอัปเดตใบรับรอง SSL ได้โดยการติดตั้งโปรแกรมเสริม (Add-on) ซ้ำ สำหรับชื่อโดเมนเดิมที่เคยใช้งาน อย่างไรก็ตาม หากในระหว่างขั้นตอนนี้คุณมีการเพิ่มหรือเปลี่ยนแปลงชื่อโดเมน ที่ใช้จะทำให้ระบบออกใบรับรองใหม่ทั้งหมดแทนของเดิมโดยอัตโนมัติ
การกำหนดค่าใบรับรอง Let’s Encrypt ใหม่
คุณสามารถปรับตั้งค่าโปรแกรมเสริม Let’s Encrypt SSL ที่ติดตั้งไว้แล้วให้ตรงกับความต้องการใหม่ได้โดยเพียงแค่คลิกที่ปุ่ม “กำหนดค่า” (Configure) ภายในแผงควบคุมของ Let’s Encrypt

จากนั้นในหน้าต่างป๊อปอัปที่ปรากฏขึ้น คุณสามารถเปลี่ยนแปลงชื่อโดเมนภายนอก (External Domain) หรือ ลบชื่อโดเมนบางรายการออกได้ เช่น ในกรณีที่คุณพบปัญหาในการกำหนดใบรับรอง SSL ให้กับโดเมนเหล่านั้น

Note: เพื่อความปลอดภัย ระบบจะทำการ ออกใบรับรอง SSL ใหม่ทุกครั้ง แม้ในกรณีที่คุณเพียงแค่ลบชื่อโดเมนบางรายการออกจากใบรับรองเดิม
ถอนการติดตั้ง Let’s Encrypt SSL Add-On
คุณสามารถลบโปรแกรมเสริม Let’s Encrypt SSL ออกจากสภาพแวดล้อมได้อย่างง่ายดาย โดยทำตามขั้นตอนดังนี้:
-
ไปที่แท็บ Add-ons
-
คลิกไอคอนตัวเลือกที่มุมขวาบนของแผง Let’s Encrypt SSL
-
จากนั้นเลือกคำสั่ง Uninstall (ถอนการติดตั้ง)

หลังจากคุณยืนยันการถอนการติดตั้ง โปรแกรมเสริม Let’s Encrypt จะถูกลบออก และ ใบรับรอง SSL ที่เกี่ยวข้องจะถูกปิดใช้งานโดยอัตโนมัติ
ตอนนี้คุณได้เรียนรู้วิธี ติดตั้งและจัดการ Add-on ของ Let’s Encrypt สำหรับการตั้งค่า SSL แบบกำหนดเองในสภาพแวดล้อมของคุณเรียบร้อยแล้ว ด้วยวิธีนี้ คุณสามารถปกป้องแอปพลิเคชันของคุณได้อย่างง่ายดาย ใช้เวลาไม่นานและที่สำคัญคือ ไม่มีค่าใช้จ่าย เริ่มต้นใช้งานได้ทันทีผ่าน Ruk-com Cloud PaaS