給你的站點新增 DNS CAA 保護

2021-09-16 13:13:38 字數 1948 閱讀 8359

譬如說,你的站點已經啟用了 hsts,甚至已經被固化到了瀏覽器內部。但是乙個中間人仍然劫持了你的連線。你走了 https 協議?沒問題,我也搞到了乙個你所訪問網域名稱的 ssl 證書。要知道 ssl 連線使用的證書是服務端決定的,但是這個證書未必就是真正的網域名稱所有人申請的。雖然普通人未必能搞到不屬於你的網域名稱的證書,但是證書頒發機構就不一樣——雖然基於信譽的原因他們不太可能會這樣做,但是沒有任何外在的保護防止他們頒發並非由網域名稱所有人申請的證書。

簡而言之,乙個有效的證書未必就是網域名稱所有人申請的證書。就好比普通人造不出能過驗鈔機的假鈔,但是再強大的驗鈔機也不能阻止造幣廠監守自盜。這時就需要乙個更上層的服務去驗證這個「有效的證書」的合法性,這就是 dns caa 的作用。

dns certification authority authorization(dns證書頒發機構授權,簡稱 caa)是一項借助網際網路的網域名稱系統(dns),使域持有人可以指定允許為其域簽發證書的數字證書認證機構(ca)的技術。它會在 dns 下發 ip 的同時,同時下發一條資源記錄,標記該網域名稱下使用的證書必須由某證書頒發機構頒發。比如我大 eoi 的官網使用了 let's encrypt 頒發的免費證書,我可以同時使用 caa 技術標記 eoi 官網網域名稱 www.eoitek.com 使用的 ssl 證書由 let's encrypt 頒發,這樣就可以(在一定程度上)解決上面所述的問題。

caa 是 dns 伺服器下發的記錄,所以首先要 dns 伺服器支援才行。eoi官網網域名稱購買自阿里雲旗下的萬網,然而萬網自帶的 dns 服務並不支援 caa 資源記錄。如果想體驗 caa,還得使用國外的 dns 伺服器。支援 caa 記錄的國外 dns 服務這裡有比較詳細的記錄:

筆者使用的是 hurricane electric free dns 這款號稱永久免費的 dns 服務。註冊賬號並郵箱驗證後,新增乙個新的網域名稱,注意要填寫一級網域名稱。

首先新增 dns 解析(a)記錄,指向你伺服器的外網 ip

然後新增 caa 記錄。

如果你仍然不太清楚如何填寫 caa 記錄,可以用工具直接生成:填寫網域名稱後點auto-generate policy,這個工具會自動查詢你的**使用了什麼證書,從而生成對應的 caa 記錄資料。

填寫完成後結果類似如下圖(圖中還新增了幾條指向 eoi 公司內網的網域名稱):

最後只需要把你網域名稱的 dns 伺服器指向到nsx.he.net就好了

更改 dns 伺服器指向可能需要約兩天時間生效。是否生效可以在hurricane electric free dns中你的網域名稱的記錄列表頁檢視。

使用ssl server test可以很方便的檢驗你的網域名稱是否啟用了dns caa

下面還有對應證書是否匹配當前 dns caa 記錄的提示

給你的背景新增彩帶

頁面效果 例 this.options this.canvas document.createelement canvas this.canvas.style display block this.canvas.style position fixed this.canvas.style margi...

給你的程式新增ODBC支援

在正式版的.net中我們發現沒有了asp和.net beta版的 odbc資料訪問。如果需要訪問資料庫就只能使用oledb oledb訪問資料庫的速度比 odbc要快。但是在oledb中我們發現如果你需要連線乙個其他的資料庫就實現不了。但是如果能使用 odbc的話,訪問其他型別的資料庫就很容易了。那...

保護站點子目錄的檔案

實現訪問某個站點子目錄下的檔案時,顯示登陸頁面。1 編制httphandler 建立乙個類專案myhandler,新建乙個類myhandler。using system using system.web namespace myhandler endregion 編譯得到myhandler.dll檔...