利用騰訊雲免費證書打造全https站

什麼是https?


超文本傳輸安全協議(Hypertext Transfer Protocol Secure,縮寫爲HTTPS)是一種網絡安全傳輸協議
httpHTTP協議運行在TCP之上,全部傳輸的內容都是明文,客戶端和服務器端都沒法驗證對方的身份
httpsHTTP運行在SSL/TLS之上,SSL/TLS運行在TCP之上,全部傳輸的內容都通過加密,加密採用對稱加密,但對稱加密的密鑰用服務器方的證書進行了非對稱加密。HTTPS經過TLS層和證書機制提供了內容加密、身份認證和數據完整性三大功能,能夠有效防止數據被查看或篡改,以及防止中間人冒充,相比http而言更安全,愈來愈多的網站選擇了全站 HTTPShtml

如何搭建https?


經過騰訊雲申請免費的SSL證書,爲期一年,申請地址:https://console.qcloud.com/ssl
我就不廢話了,直接上圖以下:

注意:域名這裏咱們填的是二級域名,由於騰訊雲僅支持單個非頂級域名的證書申請,若是咱們有多個子域須要申請屢次

DNS驗證能夠選擇自動和手動,若是自動失敗的話能夠再手動驗證,手動驗證操做以下,自動驗證經過可無視,查看證書詳情,看到以下信息:

這裏以DNSPOD解析爲例,其餘解析服務基本同樣,主機記錄就是上圖標記①中內容,記錄類型選擇CNAME記錄值選擇上圖標記②的內容,點擊保存,而後等差很少一分鐘左右證書就申請下來了:

配置的話請參考證書安裝指南,須要上傳到服務器mysql

配置htaccess


此時咱們訪問咱們的網站能夠發現加https和不加https均可以訪問到,那麼如何強制把網站重定向到https頁面中去了,也就是接下來要說到的htaccess文件了,能夠用來重定向頁面
咱們在服務器根目錄下新建一個.htaccess文件,而後往其中添加如下幾行就會自動定向到https中去linux

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

固然若是你須要你每一個子域都重定向到https頁面中去,那麼能夠在每一個子域的根目錄下添加上面的.htaccess文件,暫時我選用的就是這個笨辦法
此時你能夠發現直接重定向到https頁面了,可是因爲以前引用的微博圖牀的圖片由於是http協議,因此控制檯會報錯,提示Mixed Content錯誤信息。若是圖片是直接輸出到頁面中的話,由於微博圖牀也支持https引用,因此咱們能夠修改http協議爲https,此時控制檯就不會再報錯了。若是圖片信息是從數據庫裏獲取的話,咱們能夠在mysql執行如下命令批量修改sql

update table set imgSrc=REPLACE(imgSrc,'http:','https:')

可是我建議的是不直接使用https,而是採用無協議頭的用法,也即引用大多數CDN所使用的方法
好了,到此全站https的啓用就完成了,你會發現訪問個人網站時瀏覽器地址欄都加了一把小鎖了數據庫

參考資料:
超文本傳輸安全協議
Redirect HTTP to HTTPS automatically
25個有用.htaccess技巧
21個很是有用的.htaccess提示和技巧瀏覽器

相關文章
相關標籤/搜索