Ssl-Certificate

有沒有辦法製作 Cloudflare API 令牌,使其只能編輯特定域的記錄?

  • February 7, 2020

我希望將 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 質詢文件放在那裡。這種方法根本不會干擾您的網路伺服器,並且不會導致停機。

引用自:https://serverfault.com/questions/999850