ตามค่าเริ่มต้น Let's Encrypt ใช้ความท้าทาย HTTP-01 เพื่อยืนยันความเป็นเจ้าของ ความท้าทาย HTTP-01 วางไฟล์ไว้บน Webroot ของเว็บเซิร์ฟเวอร์ของคุณ และใช้ชื่อ DNS ของเว็บเซิร์ฟเวอร์เพื่อดึงไฟล์ หากสามารถดึงไฟล์จากอินเทอร์เน็ตได้ อำนาจของชื่อโดเมนจะได้รับการตรวจสอบและออกใบรับรอง SSL นั่นเป็นสิ่งที่ดีสำหรับเซิร์ฟเวอร์และผู้ใช้ตามบ้านส่วนใหญ่ที่สามารถซื้อที่อยู่ IP สาธารณะจากผู้ให้บริการอินเทอร์เน็ต (ISP) ได้
แต่ถ้าคุณต้องการใช้ใบรับรอง Let's Encrypt SSL สำหรับชื่อโดเมนของเครือข่ายในบ้านหรือเครือข่ายส่วนตัว/ภายในของคุณล่ะ ในเครือข่ายภายในบ้านส่วนใหญ่ การได้รับใบรับรอง Let's Encrypt SSL เป็นเรื่องที่ท้าทาย เพราะเป็นไปได้มากว่า ISP ของคุณจะไม่ให้ที่อยู่ IP สาธารณะแก่คุณ ดังนั้น คุณจะไม่สามารถผ่านความท้าทาย Let's Encrypt HTTP-01 ได้ (เนื่องจากคอมพิวเตอร์/เซิร์ฟเวอร์ของคุณไม่สามารถเข้าถึงได้จากอินเทอร์เน็ต)
ในกรณีนี้ คุณสามารถใช้ความท้าทาย Let's Encrypt DNS-01 เพื่อรับใบรับรอง SSL สำหรับเครือข่ายภายในบ้าน/ภายในของคุณได้ ในวิธีนี้ Let's Encrypt จะเพิ่มบันทึก DNS TXT สำหรับ “โดเมนย่อย _acme-challenge.yourdomain.xyz” บนเซิร์ฟเวอร์ DNS ของคุณและตรวจสอบว่าบันทึก DNS TXT นั้นพร้อมใช้งานจากอินเทอร์เน็ตหรือไม่ หากระเบียน TXT ตรงกัน คุณจะได้รับการยืนยันว่าเป็นเจ้าของโดเมนและ Let's Encrypt จะออกใบรับรอง SSL
เพื่อให้ความท้าทาย Let's Encrypt DNS-01 ทำงานและต่ออายุใบรับรอง SSL โดยอัตโนมัติ คุณต้องใช้ผู้ให้บริการ DNS (เช่น CloudFlare, DigitalOcean) ที่เปิดเผย API ที่สามารถใช้เพื่อเพิ่ม/ลบบันทึก TXT บนเซิร์ฟเวอร์ DNS
หากผู้รับจดทะเบียน DNS ของคุณ (ที่คุณจดทะเบียนชื่อโดเมน) ไม่รองรับบริการดังกล่าว คุณสามารถใช้ผู้ให้บริการ DNS บุคคลที่สามได้ สิ่งที่คุณต้องทำคือเปลี่ยนที่อยู่เซิร์ฟเวอร์ชื่อ DNS ของโดเมนของคุณจากเซิร์ฟเวอร์ DNS ของผู้รับจดทะเบียน DNS ของคุณไปเป็นที่อยู่เซิร์ฟเวอร์ชื่อ DNS ของผู้ให้บริการ DNS บุคคลที่สามที่คุณต้องการ
หัวข้อเนื้อหา:
- รายชื่อผู้ให้บริการ DNS ที่ผสานรวมได้อย่างง่ายดายด้วย Let's Encrypt DNS Validation
- รายชื่อไคลเอนต์ Let's Encrypt ACME
- การเปลี่ยน DNS Nameserver จากผู้รับจดทะเบียนโดเมนของคุณ
- ข้อดีของการตรวจสอบ Let's Encrypt DNS-01
- ข้อเสียของ Let's Encrypt DNS-01 Validation
- บทสรุป
- อ้างอิง
รายชื่อผู้ให้บริการ DNS ที่ผสานรวมได้อย่างง่ายดายด้วย Let's Encrypt DNS Validation
ชุมชน Let's Encrypt ได้รวบรวมไฟล์ รายชื่อผู้ให้บริการ DNS ที่เปิดเผย API บางประเภทเพื่อเพิ่ม/ลบบันทึก DNS โดยอัตโนมัติ เพื่อให้ไคลเอนต์ Let's Encrypt สามารถตรวจสอบชื่อโดเมนและออกใบรับรอง SSL ได้
รายชื่อผู้ให้บริการ DNS ที่รวมเข้ากับการตรวจสอบความถูกต้องของ Let's Encrypt DNS ได้อย่างง่ายดายสามารถดูได้ที่ ลิงค์นี้ .
รายชื่อไคลเอนต์ Let's Encrypt ACME
ไคลเอนต์ Let's Encrypt เรียกอีกอย่างว่าไคลเอนต์ ACME ACME ย่อมาจาก สภาพแวดล้อมการจัดการใบรับรองอัตโนมัติ ACME เป็นโปรโตคอลสำหรับการโต้ตอบระหว่างคอมพิวเตอร์/เซิร์ฟเวอร์และผู้ออกใบรับรองโดยอัตโนมัติ (เช่น Let's Encrypt)
ไคลเอนต์ Let's Encrypt ACME ที่ได้รับความนิยมมากที่สุดคือ:
การเปลี่ยน DNS Nameserver จากผู้รับจดทะเบียนโดเมนของคุณ
หากผู้รับจดทะเบียนโดเมนของคุณไม่อยู่ในรายชื่อผู้ให้บริการ DNS ที่ทำงานร่วมกับ Let's Encrypt ได้อย่างง่ายดาย คุณสามารถใช้ CloudFlare หรือผู้ให้บริการ DNS บุคคลที่สามรายอื่นได้ สิ่งที่คุณต้องทำคือเปลี่ยนเนมเซิร์ฟเวอร์ DNS ของโดเมนของคุณจากแดชบอร์ดของผู้รับจดทะเบียนโดเมนของคุณเป็นเนมเซิร์ฟเวอร์ DNS ของผู้ให้บริการ DNS บุคคลที่สามที่คุณต้องการใช้
เราแสดงให้คุณเห็นกระบวนการเปลี่ยนเนมเซิร์ฟเวอร์ DNS (เป็นเซิร์ฟเวอร์ DNS ของ CloudFlare) สำหรับหนึ่งในโดเมนของเราจากแดชบอร์ด/เว็บไซต์ของผู้รับจดทะเบียนโดเมนของเรา (ที่เราจดทะเบียนชื่อโดเมนของเรา) ในภาพหน้าจอต่อไปนี้ กระบวนการนี้ควรจะคล้ายกันสำหรับผู้รับจดทะเบียนโดเมนของคุณ หากต้องการข้อมูลเพิ่มเติม โปรดอ่านเอกสารของผู้รับจดทะเบียนโดเมนของคุณหรือติดต่อพวกเขา
ข้อดีของการตรวจสอบ Let's Encrypt DNS-01
ข้อดีของการตรวจสอบ DNS-01 ของ Let's Encrypt คือ:
- ไม่จำเป็นต้องมีที่อยู่ IP สาธารณะ/ที่เข้าถึงอินเทอร์เน็ตได้หรือเว็บเซิร์ฟเวอร์
- คุณสามารถใช้มันเพื่อออกใบรับรอง SSL สำหรับชื่อโดเมนไวด์การ์ด (เช่น *.nodekite.com, *.linuxhint.com)
- มันทำงานได้ดีกับเว็บเซิร์ฟเวอร์หลายตัว
ข้อเสียของ Let's Encrypt DNS-01 Validation
แม้ว่าจะมีข้อดีหลายประการของการตรวจสอบ Let's Encrypt DNS-01 แต่ก็มีข้อเสียบางประการเช่นกัน:
- เพื่อให้การตรวจสอบความถูกต้องของ DNS-01 ทำงานได้ คุณต้องเก็บคีย์ API/โทเค็นของผู้ให้บริการ DNS ของคุณไว้บนเซิร์ฟเวอร์ที่ไคลเอ็นต์ Let's Encrypt จะใช้เพื่อสร้างบันทึก TXT บนเซิร์ฟเวอร์ DNS สำหรับการตรวจสอบความถูกต้องของ DNS-01 เนื่องจากคีย์ API/โทเค็นถูกเก็บไว้บนเซิร์ฟเวอร์ หากเซิร์ฟเวอร์ถูกแฮ็ก ก็มีโอกาสที่คีย์/โทเค็น API จะถูกโจมตี
- หลังจากที่ไคลเอนต์ Let's Encrypt เพิ่มบันทึก TXT บนเซิร์ฟเวอร์ DNS จะใช้เวลาสักครู่ในการเผยแพร่การเปลี่ยนแปลงไปยังเนมเซิร์ฟเวอร์ DNS อื่น ๆ ทั่วโลก ไคลเอนต์ Let's Encrypt ต้องรอจนกว่าการเปลี่ยนแปลงจะเผยแพร่ไปยังเนมเซิร์ฟเวอร์ DNS ทั่วไปทั่วโลกเพื่อยืนยันความเป็นเจ้าของโดเมน หากผู้ให้บริการ DNS ของคุณไม่ได้ระบุเวลาการเผยแพร่ DNS ใน API ไคลเอนต์ Let's Encrypt จะไม่ทราบว่าต้องรอนานแค่ไหนเพื่อให้การเปลี่ยนแปลง DNS เผยแพร่ไปยังเนมเซิร์ฟเวอร์อื่น ๆ ทั่วโลก ในกรณีดังกล่าว การตรวจสอบ DNS อาจหมดเวลา และ Let's Encrypt อาจล้มเหลวในการออกใบรับรอง SSL
บทสรุป
ในบทความนี้ เราได้พูดถึงความท้าทาย Let's Encrypt DNS-01 และเหตุใดจึงใช้ความท้าทายดังกล่าวกับความท้าทาย HTTP-01 เริ่มต้นเพื่อยืนยันความเป็นเจ้าของชื่อโดเมน นอกจากนี้เรายังกล่าวถึงข้อกำหนดในการผ่านความท้าทาย Let's Encrypt DNS-01 เพื่อรับใบรับรอง Let's Encrypt SSL เราได้จัดทำรายชื่อผู้ให้บริการ DNS ที่ทำงานร่วมกับ Let's Encrypt ได้ดี รวมถึงไคลเอนต์ Let's Encrypt ACME ที่คุณสามารถใช้ดำเนินการตรวจสอบ DNS จากคอมพิวเตอร์/เซิร์ฟเวอร์ของคุณ ในที่สุด เราได้พูดคุยถึงข้อดีและข้อเสียของการตรวจสอบความถูกต้องของ Let's Encrypt DNS
อ้างอิง:
- ประเภทความท้าทาย – มาเข้ารหัสกันดีกว่า
- ผู้ให้บริการ DNS ที่ผสานรวมกับการตรวจสอบความถูกต้องของ Let's Encrypt DNS ได้อย่างง่ายดาย – เทคโนโลยีการออก – มาเข้ารหัสการสนับสนุนชุมชนกันเถอะ
- สภาพแวดล้อมการจัดการใบรับรองอัตโนมัติ – Wikipedia
- เซอร์ทบอต
- GitHub – acmesh-official/acme.sh: เชลล์สคริปต์ Unix ล้วนๆ ที่ใช้โปรโตคอลไคลเอนต์ ACME
- การติดตั้ง :: มาเข้ารหัสไคลเอนต์และไลบรารี ACME ที่เขียนด้วย Go
- หน้าแรก – Posh-ACME