我們很早就開始使用Let's Encrypt的免費SSL證書,剛開始是在Linux服務器上安裝certbot軟件,運行certbot-auto來進行生成、檢查和更新,都是采用的文件驗證方式,生成多個子域名綁定在一起的SSL證書。但早期安裝的CentOS 6.x過時了,上面運行的certbot老版本也失去支持,不能運行新版來生成泛域名證書。
後來我們升級了操作系統,順便安裝了堡塔軟件來做一些軟件的安裝補丁升級等繁瑣的事情,其站點設置中也支持生成Let's Encrypt的免費證書,可以選擇文件驗證或者DNS驗證(這對我們很方便,從Cloudflare後台獲取賬戶Email和Global API Key就可以),而且支持泛域名證書,但不似乎沒有辦法生成三級子域名的泛域名證書(例如:*.m.example.com)。
我們有的曆史站點需要綁定多個二級域名、三級域名,在用堡塔生成Let's Encrypt證書的時候有時會報錯,我們就先用Cloudflare的自簽名證書,這對于前端使用了Cloudflare或者百度雲加速作為CDN的站點來說是沒有問題的,但不能無CDN直接訪問。
最近百度雲加速上了新平台,我們有的網站已經切換到新CDN平台,發現站點訪問顯示Gateway Timeout,就是因為新平台回源不支持Cloudflare的自簽名證書,而且新平台中也沒有地方可以像老平台或者Cloudflare那樣選擇回源是嚴格https、完整https或者兼容http方式。
我們隻好再在堡塔中嘗試生成綁定多個二級、三級域名的SSL證書,依然看到報錯,這次把報錯記錄下來:
寶塔在生成ssl證書的時候一直提示caa查詢超時,例如:
DNS problem: query timed out looking up CAA for cn.amp.example.com
在Let's Encrypt官方網站找到這篇《證書頒發機構授權(CAA)》,CAA并不是一個強制性的标準,隻是部分平台要求、有的時候要求,但這次既然遇到報錯,就根據這個提示來添加CAA記錄吧。我是在Cloudflare中添加DNS記錄的,每個子域名添加了一個單獨的CAA記錄,添加完成後再次在堡塔中生成SSL證書就成功了。✌️
2023-11-27補充:最近百度雲加速中申請的證書一直無法通過驗證,今天詢問了他們客服及技術人員,說是我們添加了上面支持Let's Encrypt的CAA後,亞洲誠信的SSL證書就無法驗證了,然後我們每個子域名再添加一條CAA記錄,CA域名從letsencrypt.org改為trust-provider.com,就可以驗證通過、生成新的SSL證書了。✌️
评论