CLOUD PAAS / APPLICATION SETTINGS

การใช้งาน 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 ที่โปรแกรมเสริม มาเข้ารหัสกันเถอะ

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS


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

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS



ขั้นตอนนี้ต้องจัดเตรียม External Domain(s) ชี้มายัง environment ที่ต้องการ ทางเลือกที่เป็นไปได้คือ:

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

สุดท้ายแล้วคลิกติดตั้งเพื่อเริ่มต้นการติดตั้ง

Note: การติดตั้ง add-on นี้ต้องการไอพีสาธารณะในการทำงาน ดังนั้นในกรณีที่ environment ไม่มี public IP มันจะเพิ่มให้โดยอัตโนมัติระหว่างการติดตั้ง (ระวังเรื่องการติดตั้ง public IP เพิ่มเติมจะมีค่าใช้จ่าย)

3. ขั้นตอนการติดตั้งจะใช้เวลาสักครู่หนึ่ง เมื่อติดตั้งเสร็จแล้วคุณสามารถเข้าไปตรวจสอบได้ที่ environmentการตั้งค่า > SSL แบบกำหนดเองเพื่อดูว่า HTTPS ได้ถูก active แล้วจากวันหมดอายุของ certificate

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS


4. คุณสามารถตรวจสอบความถูกต้องของการติดตั้ง ได้โดยการลองเข้าถึงแอปพลิเคชันผ่าน HTTPS หากสามารถเปิดใช้งานได้ตามปกติและเบราว์เซอร์แสดงว่า การเชื่อมต่อปลอดภัย (Secure) พร้อมสัญลักษณ์แม่กุญแจแสดงว่าใบรับรอง SSL ถูกติดตั้งและกำหนดค่าอย่างถูกต้องแล้ว



อัพเดทใบรับรอง Let's Encrypt

ใบรับรอง Let's Encrypt SSLมีอายุการใช้งาน90 วันและจำเป็นต้องมีการต่ออายุเพื่อให้การเข้ารหัสยังคงใช้งานได้อย่างต่อเนื่อง

โดยระบบจะตั้งค่าให้ต่ออายุใบรับรองโดยอัตโนมัติโดยจะเริ่มกระบวนการนี้ล่วงหน้า 30 วันก่อนวันหมดอายุและคุณจะได้รับการแจ้งเตือนทางอีเมลเพื่อให้ทราบล่วงหน้า

คุณสามารถดำเนินการอัปเดตใบรับรอง SSL ด้วยตนเองได้ทุกเมื่อโดยทำตามขั้นตอนดังนี้:

  1. ไปที่แผงควบคุมของสภาพแวดล้อม (Environment)
  2. คลิกที่ปุ่ม Add-on(โปรแกรมเสริม) ที่อยู่ถัดจากเลเยอร์ที่ติดตั้ง SSL ไว้
  3. ภายในแผง Add-on ให้คลิกปุ่ม“อัปเดตทันที” 

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

นอกจากนี้ คุณยังสามารถอัปเดตใบรับรอง 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 ออกจากสภาพแวดล้อมได้อย่างง่ายดาย โดยทำตามขั้นตอนดังนี้:

  1. ไปที่แท็บส่วนเสริม
  2. คลิกไอคอนตัวเลือกที่มุมขวาบนของแผงมาเข้ารหัส SSL กันเถอะ
  3. จากนั้นเลือกคำสั่งUninstall (ถอนการติดตั้ง)

หลังจากคุณยืนยันการถอนการติดตั้ง โปรแกรมเสริม Let's Encrypt จะถูกลบออก และ ใบรับรอง SSL ที่เกี่ยวข้องจะถูกปิดใช้งานโดยอัตโนมัติ


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