DNS
域名系統(Domain Name System,縮寫:DNS)是互聯網的一項服務。它作為將域名和IP地址相互映射的一個分布式數據庫,能夠使人更方便地訪問互聯網。DNS使用TCP和UDP端口53。
域名是一個具有層次的結構,從上到下一次為根域名、頂級域名、二級域名、三級域名
例如www.baidu.com
,www
為三級域名、baidu
為二級域名、com
為頂級域名。
域名查詢方式
迭代與遞歸,如圖所示。
迭代的方式可以減輕根域名服務器壓力。
緩存
本地:1. 瀏覽器緩存 2.操作系統緩存
瀏覽器自身的DNS緩存:緩存時間比較短,大概只有1分鐘,且只能容納1000條緩存
沒有找到會查詢操作系統緩存,如host文件
服務器:高速緩存,例如本地服務器查詢后在緩存中存放上次查詢結果。適用于多級服務器。
域名服務器應為每項內容設置計時器并刪除超過合理時間的項
好處:增加此時間值可減少網絡開銷,而減少此時間值可提高域名解析的正確性(域名很少修改)
流程
記錄方式
A
www.example.com. IN A 139.18.28.5;
IN 代表記錄用于互聯網
A代表Address 地址,證明是域名和IP映射的關系
CNAME
a.example.com. IN CNAME b.example.com.
CNAME 別名 a地址是b地址的別名
需要實際地址時b.example會去獲取A記錄
AAAA
A 記錄是域名和 IPv4 地址的映射關系。和 A 記錄類似,AAAA 記錄則是域名和 IPv6 地址的映射關系
MX
MX 記錄是郵件記錄,用來描述郵件服務器的域名。
NS
NS(Name Server)記錄是描述 DNS 服務器網址。從 DNS 的存儲結構上說,Name Server 中含有權威 DNS 服務的目錄。也就是說,NS 記錄指定哪臺 Server 是回答 DNS 查詢的權威域名服務器。
當一個 DNS 查詢看到 NS 記錄的時候,會再去 NS 記錄配置的 DNS 服務器查詢,得到最終的記錄。如下面這個例子
a.com. IN NS ns1.a.com
a.com. IN NS ns2.a.com.
當解析 a.com 地址時,我們看到 a.com 有兩個 NS 記錄,所以確定最終 a.com 的記錄在 ns1.a.com 和 ns2.a.com 上。從設計上看,ns1 和 ns2 是網站 a.com 提供的智能 DNS 服務器,可以提供負載均衡、分布式 Sharding 等服務。比如當一個北京的用戶想要訪問 a.com 的時候,ns1 看到這是一個北京的 IP 就返回一個離北京最近的機房 IP。
上面代碼中 a.com 配置了兩個 NS 記錄。通常 NS 不會只有一個,這是為了保證高可用,一個掛了另一個還能繼續服務。通常數字小的 NS 記錄優先級更高,也就是 ns1 會優先于 ns2 響應。配置了上面的 NS 記錄后,如果還配置了 a.com 的 A 記錄,那么這個 A 記錄會被 NS 記錄覆蓋。
CDN
如果嘗試訪問地球另一端的網站,則加載時間將比在您所在城市或國家/地區托管的網站上花費更長的時間。甚至可能會丟失。這種情況下又需要重復發送。
CDN 也是現在互聯網中的一項重要基礎設施,除了基本的網絡加速外,還提供負載均衡、安全防護、邊緣計算、跨運營商網絡等功能,能夠成倍地“放大”源站服務器的服務能力,很多云服務商都把 CDN 作為產品的一部分
CDN 涉及一組分布在一個區域內的服務器。它們可以是全局的或本地的,只要它們實際覆蓋用戶最有可能請求內容的區域。內容提供商會將內容上傳到他們的服務器,然后它會自動將該數據傳播到 CDN 網絡上的其他節點。CDN 服務器通常通過快速的互聯網骨干連接相互連接,因此在它們之間轉移大量數據只需幾秒鐘。
區域就近,非必須。
證書
https://letsencrypt.org/zh-cn/ 免費非盈利性證書網站
一般指SSL證書
數字證書的一種,類似于駕駛證、護照和營業執照的電子副本。因為配置在服務器上,也稱為SSL服務器證書。SSL 證書就是遵守 SSL協議,由受信任的數字證書頒發機構CA(如GlobalSign,wosign),在驗證服務器身份后頒發,具有服務器身份驗證和數據傳輸加密功能。
主要提供數據加密和身份認證功能
操作流程
用戶連接到你的Web站點,該Web站點受服務器證書所保護。
你的服務器進行響應,并自動傳送你網站的數字證書給用戶,用于鑒別你的網站。
用戶的網頁瀏覽器程序產生一把唯一的“會話鑰匙碼,用以跟網站之間所有的通訊過程進行加密。
使用者的瀏覽器以網站的公鑰對交談鑰匙碼進行加密,以便只有讓你的網站得以閱讀此交談鑰匙碼
CA
即證書授權中心(CA, Certificate Authority)。CA是負責簽發證書、認證證書、管理已頒發證書的機關。用戶向CA提出申請后,CA負責審核用戶信息,然后對關鍵信息利用私鑰進行”簽名”,并公開對應的公鑰。客戶端可以利用公鑰驗證簽名。
種類
1.域名認證,一般通過對管理員郵箱認證的方式,這種方式認證速度快,但是簽發的證書中沒有企業的名稱;
2.企業文檔認證,需要提供企業的營業執照。一般需要3-5個工作日。 也有需要同時認證以上2種方式的證書,叫EV證書,這種證書可以使IE7以上的瀏覽器地址欄變成綠色,所以認證也最嚴格。
申請SSL證書主要需要經過以下3個步驟:
制作CSR文件。CSR就是Certificate Signing Request證書請求文件。這個文件是由申請人制作,在制作的同時,系統會產生2個密鑰,一個是公鑰就是這個CSR文件,另外一個是私鑰,存放在服務器上。要制作CSR文件,申請人可以參考WEB SERVER的文檔,一般APACHE等,使用OPENSSL命令行來生成KEY+CSR2個文件,Tomcat,JBoss,Resin等使用KEYTOOL來生成JKS和CSR文件,IIS通過向導建立一個掛起的請求和一個CSR文件。
CA認證 將CSR提交給CA
-
證書的安裝
收到CA的證書后,可以將證書部署上服務器,一般APACHE文件直接將KEY+CER復制到文件上,然后修改HTTPD.CONF文件;TOMCAT等,需要將CA簽發的證書CER文件導入JKS文件后,復制上服務器,然后修改SERVER.XML;IIS需要處理掛起的請求,將CER文件導入。
客戶端證書與服務端證書
客戶端證書用于驗證客戶/個人用戶身份
服務器證書用于驗證站點所有者身份
公鑰私鑰傳輸過程
生成一對公鑰和私鑰
公鑰發出的消息只能由私鑰解密,只要私鑰不泄露,信息就是安全的
回復消息時,對數據進行Hash函數加密生成摘要,然后使用私鑰對摘要加密就是 數字簽名
信息本身沒有加密
公鑰方對數據簽名解密可以確定信息是私鑰本人發送的。
然后對信息本身進行hash加密 ,如果加密結果和使用公鑰解密的結果相同則證明沒有被修改。