一、為什麼要進行全站HTTPS升級?
安全性
相對於HTTP協議的明文傳輸,HTTPS的傳輸是加密的,可防止資料在傳輸過程中被黑客惡意篡改和竊取,有效防止了中間人攻擊(本產品11月份就被黑客進行了一次中間人攻擊,網站頁面被插入了一些非法內容,導致當日訪問速度如同龜爬。也由此下定了全站HTTPS升級改造的決心)
更高的SEO收錄排名
HTTPS可以對接入HTTPS協議的網站獲取更高的收錄排名
防止錯誤警告提示
新版的 Chrome 瀏覽器如果發現當前網站不支援HTTPS協議,會在右上角提示『不安全』三個字,提示『請勿在該網站輸入任何敏感資訊』,對使用者的信賴感造成一定負面影響
二、HTTPS和HTTP的有什麼關係?
- HTTPS是由SSL+HTTP協議構建。https在http通訊協議的基礎上,基於ssl,增加了一個加密層
- 想要接入HTTPS,必須申請建立一SSL證書,存放在伺服器上。SSL 證書是由受信任的數字證書頒發機構 CA頒發。注意,SSL證書是有有效期的,一般為三個月到一年
- HTTP協議預設走
80
埠,HTTPS協議預設走443
埠(記住這一點很重要!)
三、為什麼要選取泛域名證書,而不是其他型別的的證書?
SSL 證書分為單域名證書
、多域名證書
和泛域名證書
:
單域名證書:
一個單域名證書只能保護它自己。例如一個msh.com
的證書,只能保護它自己,保護不了它下面的子域名,例如b.msh.com
,c.msh.com
是保護不了的。
缺點: 如上所示,意味著我每增加一個子域名,就需要重新生成一次該子域名對應的的SSL證書
多域名證書:
一個證書可以保護指定的多個域名。例如一個多域名證書既可以保護指定的msh.com
,也能保護指定的b.msh.com
和c.msh.com
,或者同級的nsh.com
缺點: 雖然可以指定多域名,但問題在於我也不知道將來我會增加什麼子域名。這意味著我到時我可能還需要重新生成一次。個人感覺,多域名證書有點雞肋。
泛域名證書:
一個對應為*.msh.com
的泛域名證書,可以保護msh.com
域名以及它下面所有的次一級的子域名例如b.msh.com
和c.msh.com
優勢:如上所示,也意味著我可以一勞永逸,泛域名證書生成後,可以適用於該域名證書下的所有次一級的子域名。所以說是泛域名證書是三種型別證書中最實用的證書。
注意: 該證書是保護不了更下一級的abc.test.msh.com
域名的,如果你想要保護abc.test.msh.com
,需要申請一個*.test.msh.com
的泛域名證書)
四、選擇付費型證書還是免費型證書?
SSL證書分為付費型
和免費型
證書。
付費型:
通過賽門鐵克
或GeoTrust
頒發,安全級別更高。此外,用他們的證書出安全事故的話,機構會提供幾十萬乃至上千萬的美金賠付。當然了,代價是證書比較昂貴,一個單域名證書一年5000 RMB,一個泛域名證書一年40000 RMB,抵得上一年伺服器租賃的成本了。所以窮逼們請繞過此條道。
免費型:
由Let's Encrypt
等數字證書機構頒發,永久免費。免費的同時,又有著極高的瀏覽器相容性和安全性。更重要的是,2018年1月份開始,Let's Encrypt開始正式泛域名證書了(窮逼們的天降福利)
結論:從適用範圍來說,顯然選擇泛域名證書是最優解。而對於嚴格控制成本(qiong bi)的中小型網際網路公司,基於Let's Encrypt生成自己的泛域名證書,是最最優解。
五、為什麼要通過 acme.sh 生成泛域名證書,而不是其它方式?
通過Letsencrypt生成證書方式有三種:
FreeSSL.org
可以訪問FreeSSL.org的官網線上生成,缺點是那就是同一主域名下的證書數量是有限制的,一般是20個,數量遠不能滿足正常使用,而且到有效期需要手動更換證書。因此太過雞肋
Certbot
可以安裝後再伺服器上生成證書, 但是自動化程度遠遠比不上 acme.sh
acme.sh
他的優勢簡單兩句話就可以說明白
- 安裝很簡單,一條命令搞定
- 自動化程度很高,支援自動dns校驗,自動更新證書
下一篇就介紹基於 acme.sh從Letsencrypt生成免費的泛域名證書
系列文章