การใช้งาน Let's Encrypt SSL
คู่มือนี้เรียบเรียงและปรับรูปแบบสำหรับ Ruk-Com Cloud PaaS ภาพหน้าจออาจแตกต่างเล็กน้อยตามเวอร์ชันของระบบ
คลิกหรือแตะภาพหน้าจอเพื่อดูรายละเอียดขนาดจริง
วัตถุประสงค์
บทความนี้อธิบายการใช้งาน การใช้งาน Let's Encrypt SSL บน Ruk-Com Cloud PaaS โดยจัดลำดับขั้นตอนและจุดตรวจสอบสำหรับการนำไปใช้งานจริง
ก่อนเริ่มดำเนินการ
- เข้าสู่ระบบด้วยบัญชีที่มีสิทธิ์จัดการ Environment ที่เกี่ยวข้อง
- ตรวจสอบชื่อ Environment, Region และทรัพยากรเป้าหมายก่อนบันทึกการเปลี่ยนแปลง
- สำรองข้อมูลหรือกำหนดแผนย้อนกลับก่อนแก้ไขระบบ Production
ใบรับรอง SSL ฟรีจาก Let’s Encrypt: ติดตั้งพร้อมใช้งานกับสแต็คซอฟต์แวร์ยอดนิยมได้ทันที
หนึ่งในเรื่องสำคัญที่ต้องจัดการสำหรับแอปพลิเคชันที่ใช้งานจริง คือการรักษาความปลอดภัยของข้อมูลโดยวิธีพื้นฐานที่นิยมใช้กันมากที่สุดคือ การเข้ารหัสข้อมูลที่ส่งและรับผ่านแอปพลิเคชันด้วยโปรโตคอล HTTPS
ตั้งแต่วันที่ 1 มกราคม 2017 เป็นต้นมา Google Chrome ซึ่งเป็นหนึ่งในเบราว์เซอร์ที่มีผู้ใช้งานมากที่สุด ได้เริ่มแสดงคำเตือนว่าเว็บไซต์ที่มีการขอให้กรอก รหัสผ่านหรือข้อมูลบัตรเครดิต แต่ไม่มีการใช้งาน SSL จะถูกมองว่า "ไม่ปลอดภัย" ซึ่งถือเป็นการเปลี่ยนแปลงสำคัญที่เน้นย้ำว่า การเข้ารหัสผ่าน HTTPS ไม่ใช่แค่ทางเลือก แต่เป็นสิ่งจำเป็น สำหรับความน่าเชื่อถือและความปลอดภัยของเว็บไซต์
การออกและตั้งค่าใบรับรอง SSL แบบกำหนดเองสำหรับแต่ละโปรเจกต์อาจเป็นงานที่ซับซ้อนและใช้เวลานาน อย่างไรก็ตามมาเข้ารหัสกันเถอะ(LE) ซึ่งเป็นผู้ออกใบรับรองแบบฟรีและเปิดใช้งานได้อัตโนมัติได้ช่วยให้การติดตั้ง SSL ที่เชื่อถือได้กลายเป็นเรื่องง่ายและไม่ยุ่งยาก
แนวโน้มที่เว็บไซต์ทั่วโลกเปลี่ยนมาใช้ HTTPS อย่างแพร่หลาย กำลังผลักดันให้เกิด ระบบอัตโนมัติเต็มรูปแบบ ทั้งในการออกและจัดการใบรับรอง SSL เพื่อตอบโจทย์นี้ นักพัฒนาของรักคอม คลาวด์ได้รวม Let's Encrypt เข้ากับระบบ Cloud Scripting ซึ่งช่วยให้ไม่ต้องต่ออายุใบรับรองเองอีกต่อไป
ข้อได้เปรียบสำคัญของโซลูชันนี้คือการรวม SSL มาให้พร้อมใช้งานกับโหลดบาลานเซอร์ยอดนิยมและเซิร์ฟเวอร์แอปพลิเคชันต่าง ๆ ตั้งแต่เริ่มต้น ช่วยให้สามารถรักษาความปลอดภัยให้กับแอปพลิเคชันที่รันอยู่บน Ruk-com Cloud ได้โดยอิสระ
สำหรับการใช้งานในรูปแบบส่วนเสริมโซลูชันนี้สามารถติดตั้งได้ง่ายบนคอนเทนเนอร์ใดก็ได้ที่รองรับ SSL แบบกำหนดเอง โดยครอบคลุมเซิร์ฟเวอร์ต่อไปนี้ (และยังมีการขยายรายการต่อเนื่อง):
- โหลดบาลานเซอร์ - NGINX, Apache LB, HAProxy, วานิช
- แอปพลิเคชันเซิร์ฟเวอร์ Java - Tomcat, TomEE, GlassFish, Payara, Jetty
- เซิร์ฟเวอร์แอปพลิเคชัน PHP - Apache PHP, NGINX PHP
- แอปพลิเคชันเซิร์ฟเวอร์ Ruby - 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 ที่โปรแกรมเสริม มาเข้ารหัสกันเถอะ

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

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

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

นอกจากนี้ คุณยังสามารถอัปเดตใบรับรอง 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 ออกจากสภาพแวดล้อมได้อย่างง่ายดาย โดยทำตามขั้นตอนดังนี้:
- ไปที่แท็บส่วนเสริม
- คลิกไอคอนตัวเลือกที่มุมขวาบนของแผงมาเข้ารหัส SSL กันเถอะ
- จากนั้นเลือกคำสั่งUninstall (ถอนการติดตั้ง)
หลังจากคุณยืนยันการถอนการติดตั้ง โปรแกรมเสริม Let's Encrypt จะถูกลบออก และ ใบรับรอง SSL ที่เกี่ยวข้องจะถูกปิดใช้งานโดยอัตโนมัติ
ตอนนี้คุณได้เรียนรู้วิธี ติดตั้งและจัดการส่วนเสริมของมาเข้ารหัสกันเถอะสำหรับการตั้งค่า SSL แบบกำหนดเองในสภาพแวดล้อมของคุณแล้ว ด้วยวิธีนี้ คุณสามารถปกป้องแอปพลิเคชันของคุณได้อย่างง่ายดาย ใช้เวลาไม่นานและที่สำคัญคือไม่มีค่าใช้จ่ายเริ่มต้นใช้งานได้ทันทีผ่านรักคอม Cloud PaaS