Let’s Encrypt SSL

ใบรับรอง SSL ฟรีจาก Let’s Encrypt: ติดตั้งพร้อมใช้งานกับสแต็คซอฟต์แวร์ยอดนิยมได้ทันที


หนึ่งในเรื่องสำคัญที่ต้องจัดการสำหรับแอปพลิเคชันที่ใช้งานจริง คือ การรักษาความปลอดภัยของข้อมูล โดยวิธีพื้นฐานที่นิยมใช้กันมากที่สุดคือ การเข้ารหัสข้อมูลที่ส่งและรับผ่านแอปพลิเคชันด้วย โปรโตคอล HTTPS

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

ssl certificate from let's encrypt

การออกและตั้งค่าใบรับรอง 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 ภายในสำหรับการทดสอบ
  • กรอกโดเมนที่ใช้จริง สามารถกรอกได้หลายโดเมนโดยขั้นด้วยคอมม่า (,)

separate domains

สุดท้ายแล้วคลิก 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 ด้วยตนเองได้ทุกเมื่อโดยทำตามขั้นตอนดังนี้:

  1. ไปที่แผงควบคุมของสภาพแวดล้อม (Environment)

  2. คลิกที่ ปุ่ม Add-on (โปรแกรมเสริม) ที่อยู่ถัดจากเลเยอร์ที่ติดตั้ง SSL ไว้

  3. ภายในแผง Add-on ให้คลิกปุ่ม “Update Now” 

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


การกำหนดค่าใบรับรอง Let’s Encrypt ใหม่

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

ssl configuration with let's encrypt

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


letsencrypt

Note: เพื่อความปลอดภัย ระบบจะทำการ ออกใบรับรอง SSL ใหม่ทุกครั้ง แม้ในกรณีที่คุณเพียงแค่ลบชื่อโดเมนบางรายการออกจากใบรับรองเดิม



ถอนการติดตั้ง Let’s Encrypt SSL Add-On

คุณสามารถลบโปรแกรมเสริม Let’s Encrypt SSL ออกจากสภาพแวดล้อมได้อย่างง่ายดาย โดยทำตามขั้นตอนดังนี้:

  1. ไปที่แท็บ Add-ons

  2. คลิกไอคอนตัวเลือกที่มุมขวาบนของแผง Let’s Encrypt SSL

  3. จากนั้นเลือกคำสั่ง Uninstall (ถอนการติดตั้ง)


let's encrypt

 

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


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