有沒有辦法製作 Cloudflare API 令牌,使其只能編輯特定子域的記錄?
我希望將 Let’s Encrypt 用於多個域和子域以及我的公司。代替購買安裝在每台機器上的持久萬用字元證書,目標是使用短期和特定的證書。這是為了防止我們在一台機器受到威脅時暴露。
不幸的是,一些伺服器不能有任何服務中斷(也就是沒有 HTTP acme 挑戰的能力)。所以最後的選擇是 DNS 挑戰。這需要我們的 DNS 提供商(在本例中為 Cloudflare)的 API 令牌。
但是,如果我將全域 API 令牌放在機器上並且它受到攻擊,那麼攻擊者就可以完全訪問我們整個域的 DNS。這正是我想通過不使用萬用字元證書來緩解的問題。
Cloudflare 讓您創建特權較少的令牌,但它們不會比每個根級域更精細。同樣,與萬用字元證書基本相同的訪問/關注點。
有沒有人想出解決這個問題的方法?
我過去針對此要求採取的方法(我相信Let’s Encrypt 的文件對此有幫助
_acme-challenge
)是將您希望驗證的名稱的子域 CNAME 到一個或多個其他區域中的名稱,這些區域具有不同的訪問控製配置。例如,如果您希望允許某些服務僅為 生成證書
bobservice.example.com
,您可以為其他域創建一個單獨的區域,例如bobservice.example
,然後將 CNAME_acme-challenge.bobservice.com
設置為_acme-challenge.bobservice.example
。然後質詢令牌被放置在 TXT 記錄中_acme-challenge.bobservice.example
,LE 跟在 CNAME 之後,並且名稱被驗證。當然,另一種選擇是完全放棄使用 Cloudflare,因為他們的服務缺乏有用的功能,例如有限範圍的憑據,以及他們為網際網路渣滓提供服務的微小問題。
不幸的是,一些伺服器不能有任何服務中斷(也就是沒有 HTTP acme 挑戰的能力)。所以最後的選擇是 DNS 挑戰。
對於您的場景,還有另一種選擇,即webroot 外掛。這允許您告訴 Let’s Encrypt 客戶端到您伺服器的 Web 根目錄的路徑,它會將 HTTP 質詢文件放在那裡。這種方法根本不會干擾您的網路伺服器,並且不會導致停機。