WordPress整站輕鬆開啓HTTPS

近兩年來HTTPS取代HTTP已經成爲大勢所趨。早在2014年google Chromium安全團隊提議將全部的HTTP協議網站標註爲不安全。如今,Chrome瀏覽器已經開始執行這一標準了。從 Chrome 56 開始,任何網頁,若是有輸入密碼或者信用卡資料的,卻沒有使用 HTTPS,將被 Chrome 瀏覽器標識爲不安全;逐步的,任何沒有使用 HTTPS 協議的網頁chrome瀏覽器都會被標識爲」不安全」,或者 「Not Secure」。php

wordpress-https-ssl.jpg

從chrome 56 版本開始,查看網站的SSL證書的方式作了調整,原來的版本能夠點擊綠色的小鎖進入查看頁面,新版本的進入方式:按F12 ,打開開發者工具窗口,進入Security選項卡,而後點擊View certificate,以下圖所示:css

ssl.png

HTTP是目前互聯網上使用最普遍的傳輸協議,可是它沒有安全加密功能,很容易遭遇劫持,致使用戶流量、隱私被竊。HTTPS則會全程加密傳輸,並有第三方安全機構認證的數字證書。特別在中國,某些ISP服務商會經過寬帶上網服務,進行流量劫持,插入廣告代碼,使用HTTPS後,這些損招就機關用盡了。html

搜索引擎逐步支持HTTPS網站的收錄,HTTPS做爲排名的因素之一,在SEO方面愈來愈重要。google搜索會把HTTPS做爲排名的因素之一,雖然當前只是比較小的因素。2015年百度站長平臺發佈消息,百度對https頁面優先收錄、優先排名:nginx

一、從相關性的角度,百度搜索引擎認爲權值相同的站點,採用https協議的頁面更加安全,排名上會優先對待。
二、這次技術升級以後,百度搜索將同一個域名的HTTP版和HTTPS版做爲一個站點來處理,優先收錄HTTPS頁面。
2017年1月1日,蘋果將對Apple Store裏全部應用啓用一項名爲ATS的重要安全功能(App Transport Security,應用程序安全傳輸,簡稱 ATS),在啓用 ATS 以後,它會強制開發者的應用經過 HTTPS(而不是 HTTP)鏈接網絡服務。web

個人網站是基於wordpress構建的,整站轉換成HTTPS,能夠輕鬆搞定。算法

SSL證書的選擇sql

一、對於國內用戶來講,能夠實用與百度雲、騰訊雲、阿里雲合做的賽門鐵克簽署的證書,一年免費,申請和使用都很方便。chrome

二、自從Let’s Encrypt免費簽發證書後,SSL證書的價格就開始平民化了,有很多付費和收費的SSL能夠選擇。Let’s Encrypt的證書雖然只有90的天,不過自動續期也很方便,對於小站來講,是很不錯的選擇。Let’s Encrypt的申請安裝方法能夠參考文章:爲你的Blog快速開啓https支持。在安裝證書的過程當中要注意:須要中止web 服務器,好比 Nginx 、Apache ,不然可能報端口占用的錯誤。數據庫

三、由於篡改、僞造等問題,慎重選擇沃通、StartCom頒發的證書。
1)2016年9月30日,蘋果 Apple於iOS可信根證書列表中宣佈:屏蔽其對中級CA WoSign CA Free SSL Certificate G2( CA 沃通免費 SSL 證書 G2)的信任。api

2)2016年10月24日,Mozilla在其安全博客公佈了對沃通CA和StartCom的最終處理措施:Mozilla 決定再也不信任目前包含在 Mozilla 根證書項目中的沃通根證書(Root certificate)和StartCom 根證書從此頒發的服務器證書。即:它再也不信任在10月21日以後簽發的沃通CA證書,並從 Firefox 51 起移除對4個沃通根證書的信任。

3)2016年10月31日,Google在其安全博客中宣佈了:從Chrome 56開始,再也不信任WoSign和StartCom在2016年10月21往後頒發的證書。

4.SSL 要用 ECC 證書,即便由於某種緣由必需要用 RSA 證書的,那麼也要用雙證書,就是 ECC + RSA兩個證書。在加密算法上,要去掉 RC4。

5.只使用 TLS 協議,包括 TLSv1.0, TLSv1.1,TLSv1.2。禁止 SSL 協議。

6.SSL 證書的簽名算法,要使用 SHA-2,不要使用已經被證實有嚴重缺陷的 SHA-1了。

調整wordpress網站配置

1.修改wordpress後臺配置中的地址改成https版本
wordpresshttps.png

經過上面的設置,絕大部分導航中的連接就由wordpress系統自動改成HTTPS版本。
二、對於正文中的內部連接須要手工修改,修改的方法有兩種:
1)直接在數據庫中更新,更新的sql以下:

update wp_posts set post_content = replace(post_content, ‘//www.watch-life.net/’,‘https://www.watch-life.net/’)
對於數據庫不熟悉的站長不推薦這種方法,對數據庫錯誤的更新對網站多是毀滅性的打擊,建議更新前最好備份數據庫。
2)利用wordpress提供的api來重寫連接。在使用的主題(themes)的目錄下的 function.php加入以下代碼:

//轉換http爲https
function change_ssl(){
if( is_ssl() ){
function change_ssl_main ($content){
$siteurl = get_option(‘siteurl’);
$upload_dir = wp_upload_dir();
$content = str_replace( ‘http:’.strstr($siteurl, ‘//’), strstr($siteurl, ‘//’), $content);
$content = str_replace( ‘http:’.strstr($upload_dir[‘baseurl’], ‘//’), strstr($upload_dir[‘baseurl’], ‘//’), $content);
return $content;
}
ob_start(「change_ssl_main」);
}
}
add_filter(‘get_header’, ‘change_ssl’);
這個方法優勢是可逆,不會對網站的數據庫有什麼影響,可使網站在HTTP和HTTPS之間自由轉換,推薦使用這種方法。

調整完內部連接後,檢查整個網站的頁面,包括首頁,欄目頁,內容頁,sitemap,頁面head部份內容,好比:css,js,canonical等,是否都轉換成了HTTPS版本。

整站301跳轉

整站若是啓用HTTPS後運行正常,就能夠開始考慮進行整站301跳轉了。若是是Apache服務器,在.htaccess文件添加以下代碼:

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.watch-life.net/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^watch-life.net [NC]
RewriteRule ^(.*)$ https://www.watch-life.net/$1 [L,R=301]
若是是Nginx服務器,在nginx.conf配置以下代碼:

server {
listen 80 default_server;
server_name www.watch-life.net;
return 301 https://$server_name$request_uri;
}
以上代碼,更換相應的域名便可使用。注意修改或增長配置代碼後,須要重啓web 服務器。重啓後,訪問原來HTTP的版本,看是否301跳轉爲HTTPS的版本。

自此,WordPress整站開啓HTTPS開啓工做所有完成。後續就是觀察各大搜索引擎抓取、收錄的狀況。

本文首發連接:https://www.watch-life.net/wo...

相關文章
相關標籤/搜索