Let’s Encrypt SSL

ฟรี! ใบรับรอง Let’s Encrypt SSL มาพร้อมกับ software stack ชั้นนำตั้งแต่แกะกล่อง

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

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

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 ได้อย่างอิสระ

เมื่อเตรียมใช้งานเป็นส่วนเสริม โซลูชันนี้สามารถติดตั้งได้อย่างง่ายดายบนคอนเทนเนอร์ใดๆ ก็ตามที่เปิดใช้งานการรองรับ 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 สำหรับสแต็กอื่น ๆ เพียงเพิ่มตัวโหลดบาลานซ์ที่หน้าเซิร์ฟเวอร์แอปพลิเคชันของคุณและติดตั้งส่วนเสริม การยกเลิก SSL ที่ระดับการโหลดบาลานซ์ถูกใช้โดยค่าเริ่มต้นใน topology แบบ cluster

If you require Let’s Encrypt SSL for any other stack, just add a load balancer in front of your application servers and install the add-on. SSL termination at load balancing level is used by default in clustered topologies.

มันทำงานอย่างไร?

ระหว่างการติดตั้ง โปรแกรมเสริมจะดาวน์โหลดและกำหนดค่าไคลเอนต์ Let’s Encrypt (หรือที่เรียกว่าตัวแทนการจัดการใบรับรอง (CMA)) ขอใบรับรองจาก Let’s Encrypt Certificate Authority (CA) นำใบรับรองที่ออกแล้วไปใช้กับสแต็กซอฟต์แวร์ที่ทำงานอยู่ตามข้อมูลเฉพาะของการรวม SSL และเพิ่ม cronjob พิเศษเพื่อเริ่มต้นการอัปเดตใบรับรองเมื่อใกล้วันหมดอายุ การตรวจสอบการควบคุมโดเมน

เมื่อมีการออกใบรับรอง Let’s Encrypt CA จะตรวจสอบ entry point ของ environment ที่พอร์ต 80 เพื่อพิสูจน์ว่าเว็บเซิร์ฟเวอร์ที่กำหนดใช้โดเมนที่ระบุไว้ ในระหว่างกระบวนการตรวจสอบโดเมน การรับส่งข้อมูล HTTP ขาเข้าทั้งหมดจะถูกส่งไปยังพอร์ต 12345 ที่กำหนดเองซึ่งเรียกใช้พร็อกซี CMA ที่เกี่ยวข้อง

ในกรณีที่เลเยอร์มีโหนดประเภทเดียวกันหลายโหนด ระหว่างระยะเวลาการอัปเดต การรับส่งข้อมูล HTTPS ขาเข้าทั้งหมดจะถูกส่งไปยังโหนดหลักที่เรียกใช้พร็อกซี CMA ซึ่งทำได้โดยการตั้งค่ากฎการกำหนดเส้นทาง DNAT ชั่วคราวพิเศษ เพื่อให้ CMA สามารถจัดการคำขอตรวจสอบโดเมนได้

เนื่องจากจำเป็นต้องมีการเปลี่ยนเส้นทางดังกล่าวในระหว่างการตรวจสอบความถูกต้องของโดเมนเท่านั้น การตั้งค่า DNAT พิเศษเหล่านี้จะถูกลบออกหลังจากยืนยันการโต้ตอบของชื่อโฮสต์

หลังจากการตรวจสอบโดเมนสำเร็จแล้ว CMA จะสามารถขอ ต่ออายุ และเพิกถอนใบรับรอง SSL สำหรับโดเมนที่ระบุได้ ดังนั้น CMA จะสร้างคู่คีย์ SSL ที่เหมาะสมโดยอัตโนมัติ ด้วยเหตุนี้ ใบรับรองที่ออกจะเผยแพร่ไปยังโหนดทั้งหมดภายในเลเยอร์จุดเข้าใช้งานผ่าน Jelastic API ดังนั้นแอปพลิเคชันจะได้รับการกำหนดค่าอย่างเหมาะสมสำหรับงานต่อไปผ่าน HTTPS

แม้จะมีคำอธิบายที่ยาว แต่การดำเนินการทั้งหมดเหล่านี้ได้รับการจัดการในเวลาไม่กี่นาที ตอนนี้ มาดูวิธีการเริ่มต้นการติดตั้งโปรแกรมเสริม Let’s Encrypt อย่างแท้จริง

การติดตั้ง 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. คุณสามารถมั่นใจได้ว่าทุกอย่างทำงานได้ถูกต้องโดยการลองเปิด application ผ่านทาง HTTPS:

let's encrypt ssl certificate

As you can see, the environment is accessible and the established connection is secure and browser-trusted.

อย่างที่คุณเห็น environment นี้สามารถเข้าถึงได้ และการเชื่อมต่อที่สร้างขึ้นนั้นปลอดภัยและเชื่อถือได้ในเบราว์เซอร์

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

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

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

นอกจากนี้ การดำเนินการนี้สามารถทำได้ด้วยตนเองเมื่อใดก็ได้ ในการนั้น ให้คลิกปุ่มส่วนเสริมที่อยู่ถัดจากเลเยอร์สภาพแวดล้อมที่เหมาะสม และใช้ปุ่ม อัปเดตทันที ภายในแผงส่วนเสริม

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

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

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

ssl configuration with let's encrypt

จากนั้นในป๊อปอัป คุณสามารถเปลี่ยนโดเมนภายนอกหรือลบรายการใดก็ได้ (เช่น หากคุณประสบปัญหาในการมอบหมายใบรับรอง SSL ให้กับโดเมนเหล่านั้น)

letsencrypt

Note: เพื่อหลีกเลี่ยงปัญหาด้านความปลอดภัย จะมีการออกใบรับรองใหม่ แม้ว่าจะลบชื่อโดเมนออกจากชื่อที่มีอยู่แล้วก็ตาม

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

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

let's encrypt

หลังจากการยืนยัน โปรแกรมเสริมจะถูกลบออกและใบรับรองที่แนบมาจะถูกปิดใช้งาน

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