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
Comments
เว็บไซท์ => เว็บไซต์
สาธารณะประโยชน์ => สาธารณประโยชน์
อินเตอร์เน็ต => อินเทอร์เน็ต
เวป => เว็บ
ไซท์ => ไซต์
browser => เบราว์เซอร์
แก้ไขแล้วครับ ขอบคุณมากครับที่ช่วยตรวจทานให้
ใครสักคนส่วนลิส ข้อดีข้อเสียให้หน่อยสิครับ (จากคนที่ไม่ค่อยรู้เรื่อง)
จากที่ทดลองใช้ครับ
ข้อดี
1. ใช้งานได้ฟรี
2. ระบบจัดการจะเป็นระบบอัตโนมัติ ในนั้นรวมถึงระบบการ renewal ใบรับรองด้วย แต่ตอนนี้ยังไม่มีให้ใช้เพราะยังไม่เสร็จครับ
ข้อเสีย
1. ยังไม่เสร็จและยังอยู่ในช่วงเบต้า อาจจะเกิดปัญหากับบางระบบปฏิบัติการ ที่ถ้าจะใช้คงต้องหาทริคให้มันใช้งานได้กันเองไปก่อน เพราะต้องรอสักช่วงระยะเวลานึงให้ทาง LE มาแก้ไขให้ใช้งานได้ตามปกติอีกทีนึง
ปัญหาที่ผมเจอคือ ช่วงต้นเดือนธค.ผมได้ลองใช้กับ Centos 6.7 ซึ่งมี Python 2.6 ติดตั้งมาให้อยู่แล้ว แต่ดันใช้งานไม่ได้ ต้องไปลง Python 2.7 เพิ่ม แต่เท่าที่เช็คผมเห็นเค้ารองรับ Python 2.6 ตั้งแต่ต้นเดือนพย.แล้ว ส่วนนี้ผมไม่รู้ว่าปัญหาคืออะไรเหมือนกันครับ
อีกรอบผมลองบน Debian 8 ใช้งานได้ตามปกติครบทุกโหมดที่ตอนนี้ใช้งานได้เลยครับ manual, standalone, apache