WordPress HTTPS 和 SSL 終極指南
已發表: 2018-10-16您可能已經註意到,在過去幾年中,您最喜歡的許多網站已從 HTTP 地址轉移到 HTTPS。 添加的字母雖然只增加了很少的時間和精力來打字,但為這些網站增加了巨大的價值和安全性。 擁有 WordPress HTTPS 站點不僅會使您的業務對訪問者更值得信賴,而且還會在搜索中排名更高。
什麼是HTTPS?
如果 HTTP 代表超文本傳輸協議。 HTTPS 代表超文本傳輸協議安全。 Mozilla 開發者網絡 (MDN) 對協議有一個奇妙而直接的定義:
HTTPS ( HTTP Secure ) 是 HTTP 協議的加密版本。 它通常使用 SSL 或 TLS 來加密客戶端和服務器之間的所有通信。 這種安全連接允許客戶與服務器安全地交換敏感數據,例如用於銀行活動或在線購物。
如果您聽說過端到端加密,就是這樣。 只有參與事務的兩個客戶端才能讀取數據。 任何可能攔截它的人都會看到理論上無法破解的亂碼。
聽起來不錯,對吧? 那麼如何獲得這個數字力場呢? 通過 SSL。
什麼是 SSL?
SSL 代表安全套接字層,再一次,MDN 比幾乎任何人都可以更好地解釋它:
[SSL] 是應用程序用於跨網絡安全通信的協議,可防止篡改和竊聽電子郵件、Web 瀏覽、消息傳遞和其他協議。
所有現代瀏覽器都支持 TLS 協議,要求服務器提供確認其身份的有效數字證書,以便建立安全連接。 如果雙方提供各自的數字證書,客戶端和服務器就可以相互驗證。
這些證書曾經非常昂貴,除了最大的網站之外,幾乎所有人都買不起。 您會在 Amazon 和 Twitter 等網站上看到綠鎖,但是日常的普通 WordPress 網站(就像我們的大多數網站一樣)無法支付數千美元購買證書的費用。

幸運的是,隨著 SSL 證書對於排名和實際開展業務變得更加必要,大多數網站的價格不僅下降了,而且完全消失了。 現在有許多服務提供免費的 SSL 證書,包括大多數主機。 您可以非常輕鬆地獲得 WordPress SSL 證書,沒有太多麻煩。
如何獲得免費的 WordPress SSL 證書
訂閱我們的 YouTube 頻道
如今,免費 SSL 證書的主要提供者來自一項名為 Let's Encrypt 的服務。
通過使用他們的服務,您無需花一分錢即可獲得 SSL 證書的所有好處。 這是最好的部分:大多數主要託管服務提供商都與 Let's Encrypt 合作,使安裝 SSL 證書完全無痛。
您可以通過以下兩種方式之一從 Let's Encrypt 獲得免費的 SSL 證書。
選項 1. 從您的(受支持的)主機帳戶安裝您的免費 SSL 證書
正如我所提到的,許多主機與 Let's Encrypt 合作,直接在其客戶的 cPanel 儀表板或主機的儀表板中添加免費的 SSL 證書。 例如,如果您在 SiteGround 託管(就像我一樣),您可以在大約兩秒鐘內安裝 SSL 證書。 從主登錄站點,進入My Accounts選項卡和Extra Services 。 您應該會看到一個名為Let's Encrypt Certificates 的部分,您可以通過單擊“查看全部”按鈕在任何地方管理和安裝它們。

此外,您可以單擊Go to cPanel按鈕並在Security標題下找到Let's Encrypt徽標。 它會將您帶到與查看全部相同的頁面。

從那裡,您將看到所有已安裝證書的列表。 如果這是您第一次通過,您將看不到任何內容。 但是,您應該看到如下內容:

無論您是否安裝通配符(用於父域上的所有子域),當您按下“安裝”按鈕時,您的 WordPress SSL 證書都已準備就緒。

服務器將處理您的新 WordPress SSL 證書安裝。 十分簡單。 你快完成了。 不過,我們仍然需要對其進行配置。 這是下一節的下面。
此外,請通讀這個為 Let's Encrypt 提供直接支持的網絡主機的完整列表。 大多數受支持主機的過程應該類似於 SiteGround。 此外,某些主機可能會向您收取使用 Let's Encrypt 的費用。 老實說,這是一種虛假收費,而且由於 Google 將 SSL 設為網絡標準,因此許多收費主機都拒絕收取費用。 如果您不免費提供它,可能是時候考慮不同的主機,因為他們沒有考慮到您的最大利益。
選項 2. 使用“免費 SSL”手動配置您的 Let's Encrypt 證書
如果您的主機不支持 Let's Encrypt,您仍然可以使用名為 SSL For Free 的網站獲取免費 SSL 證書。

該站點將幫助您配置 Let's Encrypt 證書。 但是,您將需要訪問您站點的 FTP 詳細信息,並且可能需要您的主機提供支持。 雖然此方法有效,但它非常實用,您可能需要在證書到期時手動更新證書。 因此,您應該嘗試找到提供直接 Let's Encrypt 支持的主機,因為它極大地簡化了過程。 如果由於某種原因您不能,免費 SSL 是您最好的第二選擇。
此外,您可以從 Cloudflare 和 FreeSSL 獲得免費的 SSL 證書。 Cloudflare 在其免費計劃中提供共享 SSL 證書。 如果您已經在使用 Cloudflare,這是使用 HTTPS 啟動和運行您的網站的好方法。 然後是 FreeSSL 。 雖然尚未公開,但這是賽門鐵克的免費 SSL 證書項目。 非營利組織或初創公司可以立即獲得 FreeSSL。 否則,您可以註冊以在公開時收到通知。
如果您選擇走這條路線並手動安裝證書,Sucuri 有一個很棒的指南,它將帶您逐步完成安裝過程。 但請記住,手動安裝 SSL 將要求您使用命令行、編輯 WordPress 核心文件並使用 CRON 作業。 如果這聽起來不像您想在工作中度過愉快的一天,請讓我將您引回到上面的選項 1。
如何使用 WordPress 配置您的免費 SSL 證書
無論您選擇哪種方式獲取證書,一旦安裝,用戶將能夠通過訪問https://yoursite.com查看您網站的安全版本。 但僅僅因為您的 WordPress HTTPS 連接處於活動狀態並不意味著您已經完成了。 (但你幾乎是。)
要正確配置 WordPress HTTPS 以使用您的 SSL 證書,您需要進行一些更改。 您可以手動執行此操作……或者您可以使用一個很棒的插件來為您完成所有工作。 它被稱為真正簡單的 SSL ,它名副其實。

該插件處理整個過程。 只需安裝並激活它。 請注意 - 當您第一次運行插件時,您自然會退出 WordPress。 這是因為插件將您的默認 URL 從“http://”更改為“https://”。 您需要做的就是使用您的正常登錄憑據再次登錄。 無需驚慌!
重新登錄後,您會看到插件已經進行了必要的更改。 默認選項通常就足夠了。 您可以在Settings – SSL下找到它們。

如果這些還不夠好,並且您想進行更多調整,則“設置”選項卡位於頂部。

您可能最關心的選項是第一個:自動替換混合內容。 默認情況下應選中該框。 如果沒有,請檢查它。 然後保存頁面。
現在,你可以走了。 您已成功安裝並激活 WordPress HTTPS 和 WordPress SSL。 恭喜!
常見的 HTTPS/SSL 錯誤故障排除
僅僅因為東西已經安裝並準備好並不一定意味著它們工作順利。 您可能會在您的網站上遇到一些問題。 不過,WordPress HTTPS 站點很容易排除故障。 讓我們來看看一些最常見問題的解決方案。
在某些時候,在您的站點上設置 SSL 並轉移到 WordPress HTTPS 後,您最終可能會在您的站點上看到一些損壞的圖像。 曾經完美地出現在您網站上的圖像和內容可能不會顯示為好像它們不存在一樣。 別擔心。 你沒有做錯任何事。 您的站點只是認為這些圖像不安全(它們不是),因此您要確保將 WordPress SSL 設置為顯示混合內容。
存在兩種不同類型的混合網站內容。 當 HTTPS 在 HTTP 之上加載腳本時,一種稱為混合活動內容和結果。 這是一個很大的禁忌,但不是這裡發生的事情。 另一種類型的混合內容稱為混合顯示內容,即使用 HTTP 連接的內容加載到 HTTPS 站點時。 雖然您可能沒有使用 HTTP 主動將任何圖像加載到您的網站,但 WordPress 內部的某些東西導致它們被識別為這樣。
基本上,您網站上的某些內容不喜歡您使用 HTTPS,而是自動強制使用 HTTP。 哪個渲染它們......好吧,它不會渲染它們。 所以讓我們解決這個問題。
解決混合顯示內容的第一個也是最一致的方法是使用 WordPress SSL Insecure Content Fixer 插件。

每當您安裝並激活插件時,您的混合內容錯誤可能會立即消失。 默認情況下,插件將在其設置中設置為簡單規則集(可在 WP 管理面板中的設置 - SSL 不安全內容下找到)。 您可以調整它遵循的規則的嚴格程度,一直到在所有 AJAX 調用上強制使用 HTTPS,但大多數情況下, Simple會正常工作。 根據我對這個特定問題的經驗, Simple每次都有效。 但是您的里程可能會有所不同。


如果您仍然顯示混合內容
打開您的網站,右鍵單擊並選擇查看頁面源代碼或按CTRL/CMD – U 。 您將看到您正在查看的頁面的源代碼。 在這一點上,按CTRL/CMD – F並蒐索src="http 。是的,只有一個引號。你很好,如果你看到 0.0.0.0 就可以繼續前進。
如果確實返回了任何結果,則意味著該站點是從 HTTP 源而不是 HTTPS 提取的。 要解決這個問題,您需要深入研究您的數據庫(但這很容易,任何人都可以做到)。

Better Search and Replace 插件基本上允許您通過 WordPress 管理面板在您的數據庫中工作。 您不必處理任何 SQL 或 PHP 或其他任何東西。 這是一個標準的 WordPress 頁面,其工作方式類似於典型的查找和替換,您可能已經在文字處理器中使用了十幾次。

我們有一個完整的插件指南,您可以在此處閱讀,但修復 WordPress SSL 混合內容錯誤的細分也非常簡單。
- 下載、安裝和激活插件
- 備份您的網站
- 導航到工具 -在您的 WordPress 數據庫中更好的搜索替換
- 在搜索字段中,以http://開頭輸入您網站的 URL
- 在替換為字段中,使用https://輸入您網站的 URL
- 使用CTRL/CMD – A突出顯示數據庫中的每個表
- 確保作為試運行運行? 被檢查。 這樣做可以確保任何錯誤不會破壞您的網站並且可以提前修復
- 按運行搜索/替換
如果一切按計劃進行,試運行將表明您的搜索和替換將成功,您可以真正運行它。

將 HTTP 重定向到 HTTPS
現在,這應該已經解決了您的混合顯示內容問題。 但是,您可能仍然希望確保您的站點盡可能使用 HTTPS,以防止出現任何其他問題。 一個這樣的問題是當一個站點具有指向您站點的 HTTP 版本的反向鏈接時,但您實際上運行的是新的、改進的 HTTPS 版本。 從技術上講,它們算作兩個站點,它們的舊鏈接可能對某些用戶顯示為不安全。 所以下一步是檢查您的設置 - 常規選項。 確保您的站點地址設置為 HTTPS。 如果沒有,那就這樣做並點擊保存。 (該站點會將您註銷。沒關係。)

之後,您需要進入您的 FTP 客戶端並打開您的.htaccess文件。 它將位於 WordPress 安裝的根目錄中。

你需要下載一份副本作為備份,然後在你最喜歡的代碼編輯器中打開它(我的是 Sublime Text)。 在文件的最頂部(不在#BEGIN/END WordPress標籤之間),添加以下代碼。 (感謝 Dreamhost 的代碼本身。)
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

這將在您的網站加載時將您的舊 HTTP URL 重定向到 HTTPS 版本。 請注意,在您放置[L, R=301] 的代碼中,這是通過.htaccess文件的永久 301 重定向。 如果您這樣做,您將不需要 301 重定向插件。 至少對於主域。
現在,還記得我說過它們算作兩個站點嗎? 這解決了這個問題。 您已經為新的 WordPress HTTPS 站點提供了您的 HTTP 站點的所有鏈接和搜索排名。 現在,通過告訴 Big Daddy G(這是我最近對 Google 的暱稱)確保您已搬入一個更安全、更安全的位置,以確保您保留它。 現在,是時候加載 Google Search Console 了。
即使您已經在 Google Search Console 中註冊了網站的 HTTP 版本,也要將新的 WordPress HTTPS 網站添加為新屬性。

Search Console 將彈出一個模式,詢問網站的完整 URL 。 這是您必須確保輸入 HTTPS 版本的地方。 請注意,即使模態告訴您它們是單獨的屬性,只是為了讓您意識到這一步的重要性。

然後,您將像往常一樣完成驗證屬性的過程。 當您完成此操作後,Google 會意識到您已將您的網站鎖定,以免被窺探。

在您通過 Google 驗證並使用新媒體資源設置 Search Console 後,歡迎訪問您的新 WordPress HTTPS 站點。 您應該自由並清除可以自己處理的錯誤。
帶有插件和主題的 WordPress SSL 錯誤
如果此時您仍然有錯誤,則很有可能已經超出了您的控制範圍。 活動插件或您的主題最有可能是罪魁禍首。 要查看它可能是哪個,請右鍵單擊您的頁面並從菜單中選擇“檢查”。 您也可以按CTRL-SHIFT-I打開開發人員工具。 環顧四周,直到看到標有Console的選項卡。 如果有錯誤,您將看到它們以紅色突出顯示。

當您查看錯誤時,您將能夠看到它們的類型。 如果有任何標記為Mixed Content ,您可以查看提供的文件 URL 以查看您的安裝的哪個部分負責。 您可以輕鬆識別它。 它要么是您的主題,要么是錯誤輸出中的插件。
現在,既然您知道導致錯誤的原因。 您能做的最好的事情是將其報告給插件或主題作者。 正是因為這個原因,許多人擁有支持論壇或實時聊天團隊。 我建議您將其報告給作者,原因有幾個。
首先是在插件和主題文件中亂搞會變得非常討厭。 特別是如果您自己不是開發人員。 由於有了子主題,您可以更輕鬆地調整主題文件,但您仍有機會破壞您可能不知道的重要內容。 說到插件……好吧,我們從不建議在插件文件中四處尋找。 有時它甚至比主題更令人討厭。
第二個原因是您並不孤單。 你擁有了它。 其他人也有。 這就是這些事情的運作方式。 因此,開發人員需要了解它並通過更新提供修復。 因此,您不僅幫助自己解決了問題,還為更大的利益做出了貢獻,並且對自己感覺非常好。
無效證書警告
有時,用戶可能會告訴您,您的站點顯示的證書無效或證書已過期。 這沒什麼大不了的。 這是一個簡單的修復。 一般來說,要修復過期的證書(或更新證書),您只需執行上面標題為“從您的(支持的)主機帳戶安裝免費 SSL 證書”部分中的步驟。 在大多數情況下,這會奏效。 如果沒有,請確保安裝通配符證書,因為您可能會因為域名不匹配而收到錯誤消息。

如果這不起作用,請聯繫您的主機。 正如我之前所說,我個人在 SiteGround。 當我的 SSL 沒有自動更新時遇到這個問題時,支持團隊在半小時內修復了它。 這顯然會改變主機,但他們希望您的網站幾乎和您一樣在線。
“重定向過多”錯誤
以防萬一您的.htaccess文件中的 301 重定向沒有阻止(它應該),您可能偶爾會遇到錯誤,您的站點陷入 HTTP 站點和 HTTPS 站點之間的無限循環。 幸運的是,這幾乎與無效證書一樣容易修復。 你只需要打開你的 FTP 客戶端並在你的.htaccess所在的同一文件夾中找到你的wp-config.php文件。也可以在你最喜歡的代碼編輯器中打開這個文件。 將以下代碼添加到文件底部:
/** Prevent Too Many Redirects Loop **/
define('WP_HOME','https://mywebsite.com');
define('WP_SITEURL','https://mywebsite.com');
$_SERVER['HTTPS'] = 'on';
保存並上傳回服務器。 您的網站現在應該停止在它應該停止的地方。
結束 WordPress HTTPS 和 SSL
我知道這需要考慮很多。但是 WordPress HTTPS 對於您網站未來的生存能力非常重要。 用戶更信任你。 也許更重要的是,谷歌也會更加信任你。 您現在可以修復混合內容錯誤、處理 SSL 證書過期和續訂、編輯.htaccess和wp-config.php文件,甚至還可以處理您站點的數據庫。 此時,您已鎖定站點。 當 WordPress SSL 出現問題時,您可以修復它。 拍拍自己的背,去喝一杯,然後好好休息,知道您的網站是安全無恙的。
您過去遇到過哪些 WordPress SSL 問題,您是如何解決的?
文章特色圖片來自 supercaps / shutterstock.com
