การใช้งาน Let's Encrypt SSL
คู่มือนี้เรียบเรียงสำหรับ Ruk-Com PaaS หน้าจอและตัวเลือกอาจแตกต่างตามเวอร์ชันและสิทธิ์ของบัญชี
ตรวจสอบ Environment, Region, สิทธิ์บัญชี และสำรองค่าปัจจุบันก่อนดำเนินการกับระบบจริง
ตรวจสอบชื่อเมนู ตัวเลือก และข้อกำหนดล่าสุดจากเนื้อหาภาษาอังกฤษในหน้าเดียวกันก่อนดำเนินการกับระบบจริง
วัตถุประสงค์
บทความนี้อธิบายการใช้งาน Let's Encrypt SSL บน Ruk-Com Cloud PaaS โดยจัดลำดับขั้นตอนและจุดตรวจสอบสำหรับการนำไปใช้งานจริง
ก่อนเริ่มดำเนินการ
- เข้าสู่ระบบด้วยบัญชีที่มีสิทธิ์จัดการ Environment ที่เกี่ยวข้อง
- ตรวจสอบชื่อ Environment, Region และ Resource เป้าหมายก่อนบันทึกการเปลี่ยนแปลง
- สำรองข้อมูลหรือกำหนดแผนย้อนกลับก่อนแก้ไขระบบ Production
ใบรับรอง SSL ฟรีจาก Let’s Encrypt: ติดตั้งพร้อมใช้งานกับสแต็ค Software ยอดนิยมได้ทันที
หนึ่งในเรื่องสำคัญที่ต้องจัดการสำหรับ Application ที่ใช้งานจริง คือการรักษาความปลอดภัยของข้อมูลโดยวิธีพื้นฐานที่นิยมใช้กันมากที่สุดคือ การเข้ารหัสข้อมูลที่ส่งและรับผ่าน Application ด้วยProtocol HTTPS
ตั้งแต่วันที่ 1 มกราคม 2017 เป็นต้นมา Google Chrome ซึ่งเป็นหนึ่งใน Browser ที่มีผู้ใช้งานมากที่สุด ได้เริ่มแสดงคำเตือนว่าเว็บไซต์ที่มีการขอให้กรอก รหัสผ่านหรือข้อมูลบัตรเครดิต แต่ไม่มีการใช้งาน SSL จะถูกมองว่า "ไม่ปลอดภัย" ซึ่งถือเป็นการเปลี่ยนแปลงสำคัญที่เน้นย้ำว่า การเข้ารหัสผ่าน HTTPS ไม่ใช่แค่ทางเลือก แต่เป็นสิ่งจำเป็น สำหรับความน่าเชื่อถือและความปลอดภัยของเว็บไซต์
การออกและตั้งค่าใบรับรอง SSL แบบกำหนดเองสำหรับแต่ละโปรเจกต์อาจเป็นงานที่ซับซ้อนและใช้เวลานาน อย่างไรก็ตามมาเข้ารหัสกันเถอะ(LE) ซึ่งเป็นผู้ออกใบรับรองแบบฟรีและเปิดใช้งานได้อัตโนมัติได้ช่วยให้การติดตั้ง SSL ที่เชื่อถือได้กลายเป็นเรื่องง่ายและไม่ยุ่งยาก
แนวโน้มที่เว็บไซต์ทั่วโลกเปลี่ยนมาใช้ HTTPS อย่างแพร่หลาย กำลังผลักดันให้เกิด ระบบอัตโนมัติเต็มรูปแบบ ทั้งในการออกและจัดการใบรับรอง SSL เพื่อตอบโจทย์นี้ นักพัฒนาของรักคอม Cloudได้รวม Let's Encrypt เข้ากับระบบ Cloud Scripting ซึ่งช่วยให้ไม่ต้องต่ออายุใบรับรองเองอีกต่อไป
ข้อได้เปรียบสำคัญของโซลูชันนี้คือการรวม SSL มาให้พร้อมใช้งานกับ Load Balancer ยอดนิยมและ Application Server ต่าง ๆ ตั้งแต่เริ่มต้น ช่วยให้สามารถรักษาความปลอดภัยให้กับ Application ที่รันอยู่บน Ruk-com Cloud ได้โดยอิสระ
สำหรับการใช้งานในรูปแบบส่วนเสริมโซลูชันนี้สามารถติดตั้งได้ง่ายบน Container ใดก็ได้ที่รองรับ SSL แบบกำหนดเอง โดยครอบคลุม Server ต่อไปนี้ (และยังมีการขยายรายการต่อเนื่อง):
- Load Balancer - NGINX, Apache LB, HAProxy, วานิช
- ApplicationServer Java - Tomcat, TomEE, GlassFish, Payara, Jetty
- ServerApplication PHP - Apache PHP, NGINX PHP
- ApplicationServer Ruby - Apache Ruby, NGINX Ruby
หากคุณใช้ Stack อื่นๆและต้องการใช้ Let's Encrypt SSL เพียงเพิ่ม Load Balancer ไว้ด้านหน้า Application แล้วติดตั้ง Add-on ได้ทันที ซึ่งระบบจะใช้การยกเลิก SSL ที่ระดับ Load Balancer (SSL Termination) โดยอัตโนมัติในกรณีที่เป็น Topology แบบ Cluster
Let's Encrypt SSL ทำงานอย่างไร?
ระหว่างการติดตั้ง Add-on Let's Encryptระบบจะดำเนินการโดยอัตโนมัติหลายขั้นตอน ได้แก่:
- ดาวน์โหลดและกำหนดค่า Client Let's Encrypt (หรือที่เรียกว่า Certificate Management Agent – CMA)
- ส่งคำขอออกใบรับรองไปยัง Let's Encrypt CA
- นำใบรับรองที่ได้รับไปติดตั้งกับ Software ที่ใช้งานอยู่
- ตั้งค่า Cron Job สำหรับต่ออายุใบรับรองโดยอัตโนมัติเมื่อใกล้หมดอายุ
เมื่อมีการขอใบรับรอง Let's Encrypt จะตรวจสอบว่า Domain นั้นเป็นของผู้ขอจริง โดยจะ:
- ตรวจสอบentry point ของ environment ผ่าน Port 80
- การรับส่ง HTTP ขาเข้าทั้งหมดจะถูกเปลี่ยนเส้นทางไปยังPort 12345ซึ่งใช้สำหรับ CMA Proxy
- ในกรณีที่ Layer มีหลาย Node (node) ที่เหมือนกัน ระบบจะเลือกNode หลักเพื่อจัดการคำขอและกำหนดDNAT rule แบบชั่วคราวเพื่อให้การตรวจสอบผ่าน Node นั้นเพียงจุดเดียว
เมื่อการตรวจสอบชื่อ Domain สำเร็จแล้ว DNAT rule เหล่านี้จะถูกลบออกโดยอัตโนมัติ
- CMA จะสามารถขอ ต่ออายุ และเพิกถอนใบรับรองสำหรับ Domain ที่กำหนดได้
- จะมีการสร้างคู่คีย์ SSL ใหม่โดยอัตโนมัติ
- ใบรับรองที่ออกจะถูกเผยแพร่ไปยังทุก Node ใน Layer entry point ผ่าน Ruk-Com PaaS API
- Application จะถูกตั้งค่าให้พร้อมใช้งานผ่าน HTTPS โดยอัตโนมัติ
แม้ว่าขั้นตอนจะดูซับซ้อน แต่ระบบทั้งหมดใช้เวลาเพียงไม่กี่นาทีในการตั้งค่าเสร็จเรียบร้อย
การติดตั้ง Add-On Let's Encrypt SSL
1. คลิกที่ไอคอน add-on ของ balancer แล้ว กดปุ่ม Install ที่โปรแกรมเสริม มาเข้ารหัสกันเถอะ

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

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

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

นอกจากนี้ คุณยังสามารถอัปเดตใบรับรอง SSL ได้โดยการติดตั้งโปรแกรมเสริม (Add-on) ซ้ำ สำหรับชื่อ Domain เดิมที่เคยใช้งาน อย่างไรก็ตาม หากในระหว่างขั้นตอนนี้คุณมีการเพิ่มหรือเปลี่ยนแปลงชื่อ Domainที่ใช้จะทำให้ระบบออกใบรับรองใหม่ทั้งหมดแทนของเดิมโดยอัตโนมัติ
การกำหนดค่าใบรับรอง Let's Encrypt ใหม่
คุณสามารถปรับตั้งค่าโปรแกรมเสริม Let's Encrypt SSL ที่ติดตั้งไว้แล้วให้ตรงกับความต้องการใหม่ได้โดยเพียงแค่คลิกที่ปุ่ม“กำหนดค่า” (Configure)ภายในแผงควบคุมของ Let's Encrypt
จากนั้นในหน้าต่างป๊อปอัปที่ปรากฏขึ้น คุณสามารถเปลี่ยนแปลงชื่อ Domain ภายนอก (External Domain) หรือ ลบชื่อ Domain บางรายการออกได้ เช่น ในกรณีที่คุณพบปัญหาในการกำหนดใบรับรอง SSL ให้กับ Domain เหล่านั้น
Note: เพื่อความปลอดภัย ระบบจะออกใบรับรอง SSL ใหม่ทุกครั้งแม้ในกรณีที่คุณเพียงแค่ลบชื่อ Domain บางรายการออกจากใบรับรองเดิม
ถอนการติดตั้ง Let's Encrypt SSL Add-On
คุณสามารถลบโปรแกรมเสริม Let's Encrypt SSL ออกจาก Environment ได้อย่างง่ายดาย โดยทำตามขั้นตอนดังนี้:
- ไปที่แท็บส่วนเสริม
- คลิกไอคอนตัวเลือกที่มุมขวาบนของแผงมาเข้ารหัส SSL กันเถอะ
- จากนั้นเลือกคำสั่งUninstall (ถอนการติดตั้ง)
หลังจากคุณยืนยันการถอนการติดตั้ง โปรแกรมเสริม Let's Encrypt จะถูกลบออก และ ใบรับรอง SSL ที่เกี่ยวข้องจะถูกปิดใช้งานโดยอัตโนมัติ
ตอนนี้คุณได้เรียนรู้วิธี ติดตั้งและจัดการส่วนเสริมของมาเข้ารหัสกันเถอะสำหรับการตั้งค่า SSL แบบกำหนดเองใน Environment ของคุณแล้ว ด้วยวิธีนี้ คุณสามารถปกป้อง Application ของคุณได้อย่างง่ายดาย ใช้เวลาไม่นานและที่สำคัญคือไม่มีค่าใช้จ่ายเริ่มต้นใช้งานได้ทันทีผ่านรักคอม Cloud PaaS
