全站HTTPS升級系列(一)升級前的科普工作

msh01發表於2019-01-11

一、為什麼要進行全站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.comc.msh.com,或者同級的nsh.com

缺點: 雖然可以指定多域名,但問題在於我也不知道將來我會增加什麼子域名。這意味著我到時我可能還需要重新生成一次。個人感覺,多域名證書有點雞肋。

泛域名證書:

一個對應為*.msh.com的泛域名證書,可以保護msh.com域名以及它下面所有的次一級的子域名例如b.msh.comc.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生成免費的泛域名證書

系列文章

全站HTTPS升級系列(一)升級前的科普工作

全站HTTPS升級系列(二)基於 acme.sh從Letsencrypt生成免費的泛域名證書

全站HTTPS升級系列(三)nginx配置全站HTTPS

全站HTTPS升級系列(四)專案程式碼升級改造

相關文章