มาเข้ารหัสการตรวจสอบ certbot ผ่าน HTTPS


16

จากเอกสารของปลั๊กอินเว็บรูท Certbot

ปลั๊กอิน webroot ทำงานได้โดยการสร้างไฟล์ชั่วคราวสำหรับแต่ละโดเมนที่คุณขอ${webroot-path}/.well-known/acme-challengeมา จากนั้นเซิร์ฟเวอร์การตรวจสอบความถูกต้องของ Let's Encrypt จะทำการร้องขอ HTTP เพื่อตรวจสอบว่า DNS สำหรับแต่ละโดเมนที่ร้องขอแก้ไขไปยังเซิร์ฟเวอร์ที่ใช้ certbot

บนเซิร์ฟเวอร์ภายในบ้านที่ใช้ส่วนตัวฉันปิดใช้งานพอร์ต 80 นั่นคือไม่มีการส่งต่อพอร์ตในเราเตอร์ ฉันไม่มีความตั้งใจที่จะเปิดพอร์ตนั้น

ฉันจะบอก certbot ว่าเซิร์ฟเวอร์การตรวจสอบความถูกต้องไม่ควรทำการร้องขอ HTTP แต่เป็นการร้องขอ HTTPS (พอร์ต 443) เพื่อตรวจสอบความเป็นเจ้าของโดเมน

เซิร์ฟเวอร์การตรวจสอบไม่ควรมีความจำเป็นในการตรวจสอบใบรับรองของโฮมเซิร์ฟเวอร์เนื่องจากใช้ HTTP เป็นค่าเริ่มต้นแล้ว ฉันอาจมีใบรับรองที่ลงนามเองหรือใบรับรองที่ต่ออายุได้ แต่ไม่ควรสำคัญ

ขณะนี้ฉันอยู่ในสถานการณ์ที่ฉันจำเป็นต้องเปิดใช้งานการส่งต่อพอร์ต 80 เช่นเดียวกับเซิร์ฟเวอร์ในนั้นเพื่อสร้าง / ต่ออายุใบรับรอง สิ่งนี้ไม่ให้ฉันใช้ cronjob เพื่อต่ออายุใบรับรอง มันก็เพียงพอแล้วสำหรับการทำงาน แต่ฉันมีเซิร์ฟเวอร์ที่ฟังใน 443 อยู่แล้วซึ่งสามารถทำงานได้เช่นกัน

คำตอบ:


8

ตามที่รายงานในhttps://community.letsencrypt.org/t/shouldnt-verification-via-dns-record-be-a-priority/604/47ตัวอัพเดต updater ของenableencrypt.shสนับสนุนการตรวจสอบผ่าน DNS ดูเหมือนว่าสคริปต์ตัวอัปเดตจำนวนน้อยจะมีการใช้งานสิ่งนี้ อย่างไรก็ตามวิธี HTTP เป็นวิธีที่ง่ายที่สุดที่จะใช้สำหรับการกำหนดค่าเริ่มต้น

สคริปต์ที่คุณอาจใช้ TNS SNI หรือหลักฐานการครอบครองของคีย์ก่อนหน้าสำหรับการต่ออายุ ข้อมูลจำเพาะสามารถพบได้ที่https://tools.ietf.org/html/draft-ietf-acme-acme-01#section-7.5 หากเป็นกรณีนี้คุณไม่จำเป็นต้องเปิดใช้งาน HTTP


ขอบคุณฉันลืมเกี่ยวกับการตรวจสอบตาม DNS มันค่อนข้างยากที่จะค้นหาข้อมูลใด ๆ ในขณะที่เอกสารแทบจะไม่พูดถึงมัน ไม่มีตะขอสำหรับ Namecheap ดังนั้นฉันจะพยายามนำไปใช้ตอนนี้และตรวจสอบวิธีการทำงาน ฉันจะยอมรับคำตอบหากทำงานได้ตามที่คาดไว้ แต่อาจใช้เวลาสักครู่เนื่องจากไม่มีการต่ออายุโดเมนในขณะนี้ มิฉะนั้นฉันจะต้องอบคำสั่ง --webroot ลงในเซิร์ฟเวอร์เพื่อให้เซิร์ฟเวอร์ทำหน้าที่เป็น wrapper ที่สามารถ cronjobed ได้
Daniel F

เพิ่งตรวจสอบ API ของ Namecheap นั้นค่อนข้างแย่ (เขียนทับระเบียนทั้งหมดเพื่อเพิ่มหรือแก้ไขหนึ่งรายการ) DNS ไม่ใช่ตัวเลือกในกรณีนี้ ฉันยังใช้ผู้รับจดทะเบียนอื่นซึ่งทำให้สิ่งที่ซับซ้อนมากขึ้น (การจัดการคีย์ API) คีย์ API ของ Namecheap ช่วยให้คุณสามารถเข้าถึงการลงทะเบียนโดเมนใหม่หรือโอนโดเมนซึ่งไม่ปลอดภัยเหมือน FK
Daniel F

@DanielF ฉันคาดว่าจะไม่ใช้การตรวจสอบความถูกต้อง DNS หรือ HTTP สำหรับการต่ออายุ ไม่จำเป็นเนื่องจากเซิร์ฟเวอร์ของคุณควรผ่าน TLS SNI สำหรับใบรับรองที่มีอยู่และคำขอสามารถลงนามด้วยใบรับรองที่มีอยู่ได้ ควรจะพอเพียง DNS และ HTTP เป็นวิธีการที่เหมาะสมในการสมัคร คุณควรมีเวลา 30 วันในการแก้ไขปัญหาเมื่อใบรับรองใบแรกของคุณพร้อมสำหรับการต่ออายุ
BillThor
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.