มารู้จัก Let's Encrypt กันเถอะ

by griefdlament
18 December 2015 - 05:56

Let's Encrypt (LE) เป็นระบบหน่วยงานออกใบรับรอง (Certification Authority หรือ CA) ที่สามารถใช้งานได้ฟรีและใช้ระบบอัตโนมัติในการจัดการใบรับรองความปลอดภัยสำหรับเว็บไซต์เข้ารหัส โดยเราจะใช้งานผ่าน client ที่มีให้ มีจุดมุ่งหมายเพื่อสาธารณประโยชน์ ระบบของ LE ให้บริการโดย Internet Security Research Group (ISRG)

ข้อมูลเกี่ยวกับใบรับรอง

ใบรับรองที่ออกโดย LE จะมีอายุเพียงแค่ 90 วันเท่านั้น ซึ่งดูเป็นช่วงเวลาที่สั้นสำหรับผู้ดูแลระบบหลายๆคนที่ใช้งานใบรับรองที่มีอายุ1ปี ซึ่งทาง LE ให้เหตุผลในการออกใบรับรองที่มีอายุเพียงแค่ 90 วันไว้ดังนี้

ใบรับรองที่มีอายุ90วันนั้นสามารถพบเห็นได้ทั่วไปในอินเทอร์เน็ต และข้อมูลจาก Firefox Telemetry การเชื่อมต่อผ่าน TLS ด้วยใบรับรองที่มีอายุ 90 วันนั้นมีมากถึง 29% ซึ่งมากที่สุดเมื่อเทียบกับใบรับรองที่มีอายุการใช้งานอื่นๆ และมุมมองของพวกเราใบรับรองที่มีอายุ 90 วันนั้นยังมีข้อดีอีกสองจุดด้วยกัน
1. เพื่อลดความเสียหายที่จะเกิดขึ้นหากกุญแจที่ใช้ยืนยันใบรับรองถูกเข้าถึงโดยผู้ไม่ประสงค์ดี กุญแจที่ถูกขโมยไปจะสามารถใช้ได้เพียงในช่วงระยะเวลาสั้นๆเท่านั้น
2. มันจะกระตุ้นให้ใช้ระบบอัตโนมัติ ซึ่งทำให้การใช้งานสะดวกมากขึ้น การที่พวกเราจะทำให้เว็บไซต์ทั้งหมดนั้นใช้ HTTPS พวกเราไม่สามารถรอให้ผู้ดูแลระบบมาติดตั้งหรือต่ออายุใบรับรองเองได้อยู่ตลอดเวลา ซึ่งถ้าระบบทั้งหมดนั้นเป็นระบบอัตโนมัติ การที่ใบรับรองจะมีอายุการใช้งานสั้นก็ไม่ส่งผลกระทบใดๆ

จากบทความ Why ninety-day lifetimes for certificates?

แต่สำหรับในช่วงเบต้า ทาง LE เน้นย้ำให้ทำการขอใบรับรองใหม่ตั้งแต่ช่วง 60 วัน เพื่อป้องกันข้อผิดพลาดเรื่องเวลาหมดอายุของใบรับรอง เพราะว่า LE's client นั้นยังไม่เสถียรพอ และอาจจะมีการเปลี่ยนแปลงขั้นตอนหรือวิธีการขอใบรับรองได้ตลอดเวลา ซึ่งถ้ารอจนถึงช่วงที่ใบรับรองหมดอายุอาจจะเกิดปัญหาและทำให้ขอใบรับรองใหม่ไม่ทัน

และในปัจจุบัน ISRG Root CA นั้นยังไม่ได้ถูกบรรจุลงภายในเบราว์เซอร์ใดๆ แต่ทาง LE นั้นใช้การ cross-sign จาก IdenTrust

การขอใบรับรอง

กระบวนการขอใบรับรองจะจัดการผ่านโปรโตคอลที่เรียกว่า Automated Certificate Management Environment (ACME) โดยโปรโตคอลนี้สร้างขึ้นมาเพื่อที่จะทำให้กระบวนการยืนยันโดเมน (Domain Validation) กระทำได้อย่างอัตโนมัติโดยไม่ต้องมีมนุษย์เข้าไปเกี่ยวข้องโดยสิ้นเชิง โดยผู้ใช้ต้องระบุอีเมลและโดเมนที่ต้องการลงไป โดยอีเมลนั้นจะถูกนำไปใช้เป็นบัญชีผู้ใช้สำหรับ ACME server ด้วย

กระบวนการยืนยันโดเมนที่ ACME ใช้จะเรียกว่า Domain Validation with Server Name Indication (DVSNI) การทำงานคร่าวๆจะเป็นดังนี้ ACME server จะขอให้ client สร้างใบรับรองตนเองที่มีข้อมูลจาก server ตนเอง เสร็จแล้ว ACME server จะเชื่อมต่อเข้ามาและตรวจสอบใบรับรอง ถ้าถูกต้องกระบวนการยืนยันโดเมนก็จะเสร็จสมบูรณ์

การขอใบรับรองนั้นแบ่งได้เป็นสองแบบ
1. ขอใบรับรองและติดตั้งอัตโนมัติ จะต้องใช้ apache หรือ nginx โดย LE's client นั้นจะทำการใช้ HTTP server ที่ตั้งค่าไว้ทำการยืนยันโดเมนเพื่อขอใบรับรองรวมถึงติดตั้งให้กับ HTTP server ที่เปิดอยู่ในทันที แต่ตอนนี้ยังใช้ได้เพียงแค่ apache 2.4 บนระบบปฏิบัติการที่เป็น Debian-based และมี libaugeas0 1.0+ เท่านั้น ส่วน nginx นั้นยังอยู่ในช่วงทดลองจึงยังไม่มีให้ใช้งาน
2. ขอใบรับรองเพียงอย่างเดียว วิธีนี้จะได้ใบรับรองมาเพื่อนำไปติดตั้งด้วยตนเอง โดยจะทำได้ 3 แบบ คือ manual สร้าง server ขึ้นมาเองโดยผู้ใช้, standalone สร้าง server ขึ้นมาใหม่โดย LE's client และ webroot เป็นการใช้ server ที่เปิดไว้อยู่แล้ว

รายละเอียดเพิ่มเติม: เอกสารรายละเอียดACME, รายชื่อเบราว์เซอร์และระบบปฏิบัติการที่รองรับ, Documentation

Blognone Jobs Premium