這陣子,外貿(mào)圈子里最熱的就兩個事情:
從2017年1月1日起,國家稅務(wù)總局開始清查境外賬戶(CRS 體系下的非居民賬戶)從2017年1月1日起,谷歌 Chrome 瀏覽器將會把采用 HTTP 協(xié)議的網(wǎng)站標(biāo)記為“不安全”網(wǎng)站
第1)件事情我們先不論,后面文章再說。先說說第2件事。
Google 一直在推動網(wǎng)站從 HTTP 切換到 HTTPS??梢哉f,谷歌越來越偏愛安全級別高的網(wǎng)站。2014 年 8 月,Google 將 HTTPS 正式作為排名因素之一。
HTTPS 網(wǎng)站被認(rèn)為是安全的網(wǎng)站,將會比 HTTP 的網(wǎng)站在排名上獲得小幅優(yōu)勢。而在過去的兩年中,谷歌對于 HTTPS 網(wǎng)站的網(wǎng)頁抓取收錄也在明顯上升:
2014年1月-2016年1月 過去2年中谷歌收錄的頁面中,HTTPS 網(wǎng)頁的收錄量已經(jīng)超過30%
而從谷歌官方人員 John Mueller(谷歌站長趨勢分析師)的話中也可以看出來,谷歌會破開一切阻撓推行 HTTPS :
關(guān)于更多的信息,我就不列舉國外消息了。看圖說話吧,從別的網(wǎng)站上截的:
從2017年1月1日起,谷歌 Chrome 瀏覽器將會把采用 HTTP 協(xié)議的網(wǎng)站標(biāo)記為“不安全”網(wǎng)站
谷歌官方博客消息原文:
答案是:很有可能。
那么我們外貿(mào)英文網(wǎng)站應(yīng)該怎么辦呢?HTTPS 的目的是確保交易類網(wǎng)站的安全,保證涉及網(wǎng)站平臺賬戶信息,付款信息以及信用卡等信息不泄露。在SEO方面的作用是在 seo 上獲取谷歌的好感,排名能夠比 HTTP 網(wǎng)站提升一些,但提升幅度也很小。畢竟影響谷歌排名的因素多達(dá)200多個,這并不足以對整體網(wǎng)站排名權(quán)重產(chǎn)生根本影響。總體而言,
如果你是 B2C 網(wǎng)站,因為會涉及到商城,購物車,付款和訂單信息,在線支付等方面的因素,我認(rèn)為很有必要啟用 HTTPS。而外貿(mào) b2b 網(wǎng)站更多地只是做個公司展示,產(chǎn)品展示,所以 HTTPS 的意義沒有 B2C 網(wǎng)站那么大。但加上一個是可以提升“bigger”,另一方面訪客也會覺得安全。
接著來說怎么給網(wǎng)站從 HTTP 換用 HTTPS??傮w來說分為四個步驟:安裝 SSL 證書、部署 SSL 證書、修改網(wǎng)站配置文件conf 、網(wǎng)站 URL 中 HTTP 替換為 HTTPS。
一、安裝 SSL 證書(Let’s Encrypt)
SSL 證書有免費的也有收費的。具體就不科普了。免費的也可以用,如大名鼎鼎的 Let’s Encrypt SSL certificates.
(2017.6月更新:Let’s Encrypt 已正式更名為 Certbot )
本文主要介紹?VPS?怎樣安裝部署 SSL 證書并啟用?HTTPS。
下載和安裝證書
1)先安裝 git 包
連接上 VPS 后,在 Xshell 上粘貼命令(每條命令用鼠標(biāo)右鍵復(fù)制粘貼,回車執(zhí)行即可。不支持 ctrl+v 粘貼):
2)下載證書包
sudo git clone
3)進(jìn)入證書目錄
二、創(chuàng)建并部署 Let’s Encrypt?SSL 證書
繼續(xù)命令行執(zhí)行:
./certbot-auto certonly –standalone –email 2897xxx@
注意:
上面命令中的?email 地址是方便你接收證書密鑰回復(fù)以及緊急信息的,盡量填寫企業(yè)郵箱或者 gmail 郵箱,QQ郵箱應(yīng)該也可以,你可以填寫試試。你的網(wǎng)站域名如果是
建議先把上面命令復(fù)制粘貼到記事本里,把?
然后等待:
接著,會詢問你是否同意的協(xié)議。agree 的話,輸入 a,回車。此時就準(zhǔn)備創(chuàng)建證書了。
如果發(fā)生故障,如提示:
那么請參考這篇文章解決:
在 VPS 建站下手動安裝 SSL 證書時,如果出現(xiàn)此錯誤提示: Problem binding to port 80: Could not bind to IPv4 or IPv6. 則原因是 nginx 占 ..

最后成功創(chuàng)建證書。
一般情況下,屏幕顯示創(chuàng)建的信息如下:
此時粘貼執(zhí)行命令:
會列出該目錄下,證書文件存放的網(wǎng)站文件夾,文件夾名就是網(wǎng)站域名。
注意看一下是主域名還是 www域名。這很重要!一會配置證書路徑的時候需要檢查一下,保證路徑正確!比如,這里顯示的是主域名,如圖中
注意上面?
最后兩個是我們要用的,需要寫到虛擬主機配置文件 conf 里面。
三、修改網(wǎng)站配置文件
用 XFTP 進(jìn)入?/usr/local/nginx/conf/vhost/ 下的 你的網(wǎng)站的配置文件,通常是
注意:別用電腦系統(tǒng)自帶的記事本,那個只是處理文字用的,會把代碼編碼弄亂。你可以百度搜索:notepad++,在百度的下載那里選擇普通下載,然后下載安裝。
CTRL+A 全選中所有代碼,刪除。然后復(fù)制下面我已經(jīng)配置好的代碼,粘貼進(jìn)入。
注意檢查一下,把上面所有的?
注意:為了讓過程簡單一些,我們這先別急著上傳覆蓋源文件。先別重啟 nginx。這一步我們先配置好文件,但先不上傳重啟 nginx。
四、把 WordPress 數(shù)據(jù)庫中 HTTP 替換成 HTTPS
登錄 WordPress 后臺,然后點擊插件,安裝插件,搜索:Velvet Blues Update URLs ?插件,啟用。
啟用之后,按照圖中設(shè)置,
點擊 Update 按鈕。之后在上方會顯示進(jìn)行了哪些替換處理的結(jié)果:
然后,檢查一下:
設(shè)置(Setting)-常規(guī)(General) 那里,WordPress地址 和 網(wǎng)站地址(Site URL) 是不是都改成 https 了。如:
如果還是 http,請手動修改一下。修改之后,系統(tǒng)會立即把你登出后臺。
五、上傳網(wǎng)站配置文件,重啟 nginx
上傳第三步我們保存的
接著 Xshell 執(zhí)行:service nginx restart
OK,此時 訪問你的網(wǎng)站,會自動跳轉(zhuǎn)到 https。
OK,此時再訪問首頁,已經(jīng)是綠色小鎖加持了!
六、我都做了,為什么看不到小綠鎖?
可能有些人完成第五步后,發(fā)現(xiàn) chrome 瀏覽器 https 左邊并沒有出現(xiàn)綠色的小鎖???
說說兩種情況:
如果你是新裝 WordPress,這一步必顯示綠色小鎖。
如果你是網(wǎng)站搬家,把之前的網(wǎng)站搬過來的,那么可能會不顯示小鎖。如果你每一步都做好了,但是還是不顯示小綠鎖,那么只能說,你的數(shù)據(jù)庫中調(diào)用的資源雖然都是 https 的,但是頁面存在仍用 http 調(diào)用的資源。最常見的可能是:
某個主題的 banner圖片,你在?主題設(shè)置?里面填寫的某個資源(多數(shù)是圖片) 的URL 地址是死的,并不會被存入數(shù)據(jù)庫,所以用插件替換不掉。比如:http:
類似這樣在主題設(shè)置里寫死的 URL 里的 http,插件是沒有辦法替換到的。所以你要自己去檢查是否有調(diào)用 https:// 的資源。把這些改成 https:// 就會正常出現(xiàn)小綠鎖了。
怎么檢查呢?
用瀏覽器的 F12(科學(xué)點的瀏覽器,如 chrome, firefox … 搜狗高速模式也OK,360我不用所以不知道,IE是鐵定不行)。
按 F12 后彈出的工具界面 tab 里選擇 network,會列出加載的網(wǎng)絡(luò)資源。注意這時候是空的,因為頁面已經(jīng)加載完畢了。
你需要再按一下 F5刷新頁面,這個時候會出現(xiàn)加載的資源列表。把鼠標(biāo)移動到這些資源的 URL 那里會自動顯示出資源 URL 地址。一個個檢查哪個是 http 的,然后想辦法改掉就OK了!
七、關(guān)于免費的 Let’s Encrypt SSL 證書的說明
免費的 L et’s Encrypt SSL certificates 的有效期一般是 90天,90天之后可以再續(xù)期。也不麻煩,執(zhí)行命令行即可。
八、可以讓證書到期自動續(xù)期嗎?
可以!利用?cron?可以讓證書到期自動續(xù)期。
關(guān)于自動續(xù)期,建議看看這篇文章:Certbot對免費Let’s Encrypt證書的自動續(xù)期,So Easy!
九、測試 SSL 是否完全OK
感謝 @tudou 提供的測試網(wǎng)址:
測試結(jié)果:A+ ?完美~!
十、為什么我的測試結(jié)果是 A,不是 A+?
沒關(guān)系,A已經(jīng)夠了!寫這篇文章之前,我配置 SSL 的 nginx 規(guī)則代碼(本文第三部分)里是含有 HSTS (HTTP Strict Transport Security) 協(xié)議的。至于什么是 HSTS 協(xié)議,你可以自行百度。
如果你的 SSL 規(guī)則里添加了 HSTS協(xié)議,那么它起到的主要作用是 強制用戶的瀏覽器只能用 https 來訪問你的網(wǎng)站。所以得分一定高:A+。上面截圖也是基于之前的 https 配置。
但是,根據(jù)我數(shù)次試驗,HSTS 是個雙刃劍,一旦你啟用了,想取消特別特別麻煩。所以我后來在文章中把那個代碼注釋掉了。大家可以無視,其實得分 A 也夠了!
如果你特別在意得分,覺得網(wǎng)站也一直會使用https下去,那么就在第三部份的網(wǎng)站配置代碼中 443 Server 段內(nèi),找到以下這兩行代碼:
HSTS 要求 max-age 最少為6個月,即 15768000,最好為12個月。
把上面第 2 行里的 add_header 前面的 # 號去掉,保存覆蓋重啟 nginx 即可啟用 HSTS。再測試得分,就是A+。
但,我還是建議不要單純?yōu)榱隋\上添花的分?jǐn)?shù)給自己麻煩。一旦加了 HSTS 之后,想取消很麻煩。以后你如果想臨時停用 https,網(wǎng)站是無法訪問的。因為你網(wǎng)站臨時恢復(fù)成 http,但 HSTS 強制了所有訪問者的瀏覽器在 12 個月內(nèi)只能用 https 來訪問,于是就會訪問出錯。因此,建議如果以后需要,再加上這條。
關(guān)于 HSTS 的用法其實還有更細(xì)節(jié)的內(nèi)容,比如,如果對子域名也同樣執(zhí)行 HSTS,則規(guī)則為:
還有是否創(chuàng)建?preload list?等等……
這里不想介紹那么多,因為并不建議設(shè)置 HSTS,所以這里就不再多說了,有需要請自行百度。
十一、有兩個網(wǎng)站,怎么給第二個網(wǎng)站配置 https?
進(jìn)入證書目錄
粘貼一下命令,回車執(zhí)行:
此時,會提示你端口 443 已經(jīng)占用,無法安裝證書。
由于我們第一個網(wǎng)站的 https 已經(jīng)占用了443 端口,所以我們要先把 443 端口進(jìn)程關(guān)閉。一般是因為當(dāng)前網(wǎng)站 nginx 占用了 80 和 443 兩個端口。所以我們先執(zhí)行:
如果停止成功,則重新粘貼上面那條 sudo 命令來安裝證書
如果出現(xiàn)如下的問題,如截圖所示:
那么就要從進(jìn)程里把 nginx 強制關(guān)閉。執(zhí)行命令查看 nginx 的 PID:
ps aux |grep nginx
可以看到類似于如下截圖中的進(jìn)程信息:
比如:圖中有三個 PID:28576 28579 29928 ?(不一定是這3個進(jìn)程號,你要自己看)
于是執(zhí)行命令:kill -9 28576 28579 29928??(格式為 kill -9 進(jìn)程號1 進(jìn)程號2 進(jìn)程號3,進(jìn)程號之間有空格)
然后再執(zhí)行命令:service nginx stop,停止 nginx 之后,接著粘貼上面那條 sudo 的命令,即可正常給第二個網(wǎng)站安裝證書。
安裝完證書,完成之后,記得重啟 nginx!
安裝好證書后,再從第三步開始配置網(wǎng)站 conf 文件。三、四、五、八。