任何 WordPress 網站的免費 SSL

已發表: 2022-03-10
快速總結 ↬如果您有一個電子商務網站,那麼 SSL 是安全處理信用卡所必需的。 但即使您不處理付款,您仍然應該認真考慮安全 HTTP(或 HTTPS),尤其是現在我將向您展示如何免費快速設置它。 讓我們開始吧。 簡而言之,SSL 就是 HTTPS 中的“S”。 它為 HTTP 添加了一層加密,以確保收件人實際上是他們聲稱的身份,並且只有授權的收件人才能解密消息以查看其內容。

如果您有一個電子商務網站,那麼 SSL 是安全處理信用卡所必需的。 但即使您不處理付款,您仍然應該認真考慮安全 HTTP(或 HTTPS),尤其是現在我將向您展示如何免費快速設置它。 讓我們開始吧。

什麼是 SSL,我為什麼要關心?

簡而言之,SSL 就是 HTTPS 中的“S”。 它為 HTTP 添加了一層加密,以確保收件人實際上是他們聲稱的身份,並且只有授權的收件人才能解密消息以查看其內容。

關於 SmashingMag 的進一步閱讀

  • HTTPS 無處不在,使用 Nginx、Varnish 和 Apache
  • 如何使用舊的 SSL 密鑰頒發新的 SSL 證書
  • 為 HTTP/2 做好準備:Web 設計師指南

諸如信用卡號之類的敏感信息——基本上是任何私人信息——應始終通過 HTTPS 提供。 然而,正如我們在新聞網站、博客、搜索引擎和大多數主流品牌的網站上看到的那樣,通過 HTTPS 提供所有內容的趨勢正在增加。 因此,即使您的網站不處理付款,也有充分的理由考慮使用 HTTPS,這裡列出了其中的一些:

跳躍後更多! 繼續往下看↓
  • 信譽。 即使是非技術觀眾也會將瀏覽器地址欄中的綠色小掛鎖與信任和可靠性聯繫起來。
  • 密碼保護。 也許您的網站只託管小貓視頻。 但是,如果用戶使用他們也用於網上銀行的密碼通過 Wi-Fi 登錄您的網​​站,那麼您可能會通過公開廣播這些憑據來促成嚴重的安全漏洞。
  • 面向未來。 許多網站仍然通過 HTTP 提供服務,但不可否認的是 HTTPS 的趨勢,而且隨著用戶對網絡安全的了解越來越多,這種趨勢只會增加。 站在歷史的正確一邊。
  • 搜索引擎優化。 Google 正式宣布使用 HTTPS 作為排名信號。 換句話說,谷歌通過提高搜索結果中的排名來獎勵 HTTPS 網站。

反對 HTTPS 的一個常見論點是它會降低性能。 誠然,加密和解密的過程確實需要額外的毫秒,但在大多數情況下,它可以忽略不計,這可以從 Google 和 Facebook 等注重性能的公司通過 HTTPS 提供所有內容的事實中得到證明。 而且,的確,HTTPS 會加劇現有的性能問題,例如單獨提供許多 CSS 文件,但是通過遵循基本的最佳性能實踐可以緩解這種情況。 而隨著 HTTP/2 的採用,HTTPS 的性能成本更低。 底線是,只有當您的網站被超優化或表現不佳以至於每毫秒都很重要時,性能下降才是有意義的威懾。

如何免費設置 HTTPS

免費設置 HTTPS 的第一步是註冊雲 DNS 服務。 如果您不知道 DNS 是什麼,我建議您在繼續之前花一點時間了解一下。 令人愉快的 DNS 工作原理在將其分解為俏皮卡通方面做得很好。 否則,只需知道 DNS 是這樣的系統,例如example.com (人類理解)等域名鏈接到104.28.2.167 (計算機理解)等 IP 地址。 你有很多選擇,但我是 CloudFlare 的粉絲,因為它的設置速度非常快,儀表板很直觀,並且提供了具有許多強大功能的免費計劃。

設置 CloudFlare

註冊 CloudFlare 帳戶後,您將通過一個簡單的嚮導來配置您的第一個網站,最後將說明如何登錄您的域註冊商並將名稱服務器指向 CloudFlare。 更改需要一些時間才能傳播,但完成後,CloudFlare 將託管您網站的 DNS 記錄。 接下來,打開 CloudFlare 的“靈活 SSL”功能。

CloudFlare 儀表板
帶有 SSL 設置的 CloudFlare 儀表板(查看大圖)

選擇“靈活 SSL”設置很重要,因為它不需要您在網站服務器上購買和安裝自己的 SSL 證書。 這是正在發生的事情的圖表。

CloudFlare 靈活的 SSL 圖
CloudFlare 靈活的 SSL 圖(查看大圖)

如您所見,CloudFlare 充當中間人來保護您的網站和客戶端之間的流量。 如果這是一個靜態 HTML 網站,您現在可以通過 HTTPS ( https://yourdomain.com ) 連接到它。 然而,WordPress 需要額外的配置才能使用修改後的協議。

將 WordPress 從 HTTP 重新配置為 HTTPS

您首先需要在“設置”→“常規”下更新儀表板中的“WordPress 地址”和“站點地址”設置。 執行此操作時,您將不得不再次登錄儀表板。

WordPress儀表板
帶有 URL 設置的 WordPress 儀表板(查看大圖)

謹慎行事。 如果您過早更新這些設置,您可能會被鎖定。 例如,如果網站尚未正確配置 HTTPS 並且設置已更新,您可能會導致重定向循環中斷網站並阻止您訪問儀表板。

此時,您應該可以通過 HTTPS 訪問網站的主頁。 但是,頁面鏈接仍將指向 HTTP URL。 WordPress 將頁面和圖像的鏈接存儲為絕對 URL,這意味著包括協議在內的完整 URL 都保存在數據庫中。 為確保通過 HTTPS 始終如一地為整個網站提供服務(不會發出有關混合內容的警告),您需要更新舊內容。

更新舊內容

在只有幾個頁面的小型網站上,最快的選擇可能是通過在管理界面中編輯現有頁面來手動更新 URL。 如果網站很大或有一個非常活躍的博客,那麼手動編輯可能不切實際。 如果您的主機提供 phpMyAdmin 或其他一些接口來運行 MySQL 查詢,您可以通過 SQL 選項卡中的一些 MySQL 查詢輕鬆完成此操作。 或者,您可以按照自定義 Windows 的說明從命令行執行此操作。

冒著明顯的風險,將以下查詢中的yourdomain.com替換為您的實際域。 此外,如果您自定義了 WordPress 的表前綴,請將wp_替換為相關前綴。

首先,更新帖子和頁面的 URL。

 UPDATE wp_posts SET guid = replace(guid, 'https://yourdomain.com','https://yourdomain.com');

[更新:如評論中所述,不應編輯 guid 字段。]

也更新wp_postmeta表。

 UPDATE wp_postmeta SET meta_value = replace(meta_value,'https://yourdomain.com','https://yourdomain.com');

最後,更新帖子或頁面的實際內容。 這會將所有反向鏈接更新到 HTTPS。

 UPDATE wp_posts SET post_content = REPLACE(post_content, 'https://yourdomain.com', 'https://yourdomain.com');

運行這些查詢後,您將需要通過轉到“設置”→“永久鏈接”來刷新永久鏈接。 只需將設置更改回默認設置,然後將其設置回您最初使用的任何設置。

現在,您應該可以單擊整個網站的菜單和鏈接,並且協議應該保持 HTTPS。

混合內容警告故障排除

根據使用的主題和插件,您可能會在地址欄中收到警告,指出某些資源未得到安全服務。 如果錯誤與您自己的自定義主題或插件添加的資產相關聯,請確保正確地將 JavaScript 和 CSS 文件排入隊列,而不是對以HTTP開頭的 URL 進行硬編碼。 大多數瀏覽器都允許您展開警告以顯示導致錯誤的特定請求。 您還可以嘗試免費插件,例如 SSL Insecure Content Fixer,它會嘗試糾正未能做到這一點的第三方插件。

此時,您應該在訪問您的網站時在 URL 欄中看到綠色掛鎖。 如果您沒有使用 WooCommerce 或 WP eCommerce 等電子商務插件,那麼您就完成了! 如果你是,還有一個重要的最後一步。

讓靈活的 SSL 與電子商務插件一起工作

WordPress 有一個名為is_SSL()的核心函數,插件依靠它來確定流量是否使用 SSL 加密。 單獨使用上述方法,此函數將返回false ,因為加密僅在 CloudFlare 和客戶端之間。 PHP 與之交互的流量是未加密的,因此該函數檢查的超級全局(即$_SERVER['HTTPS'] )將沒有用。 出於我們的目的,相關變量是$_SERVER['HTTP_X_FORWARDED_PROTO'] ,在撰寫本文時,WordPress 無法識別。 改變這一點的要求由來已久,但尚未解決。

幸運的是,一個免費的插件 CloudFlare Flexible SSL 會立即為您解決這個問題。 只需安裝插件並激活它。 請記住,這種技術不會增加任何安全性。 CloudFlare 和您網站服務器之間的流量仍未加密,因此仍容易受到嗅探。

靈活的 SSL 不是完整的 SSL

CloudFlare 的“Universal SSL”倡議是使 Internet 更加安全的有趣嘗試,但並非沒有爭議。 主要擔心的是,靈活的 SSL 不會加密流量旅程的後半部分(到您的服務器),但瀏覽器目前仍然顯示與我們聯繫起來的完整SSL 相同的綠色掛鎖。 CloudFlare 在其博客上提供了以下理由:

對於小型博客來說,擁有尖端的加密技術似乎並不重要,但它對於推進互聯網默認加密的未來至關重要。 每一個字節,無論看起來多麼平凡,在互聯網上加密流動的每個字節都讓那些希望攔截、扼殺或審查網絡的人變得更加困難。 換句話說,確保您的個人博客可以通過 HTTPS 訪問,這樣更有可能在世界各地訪問人權組織或社交媒體服務或獨立記者。 我們可以一起做偉大的事情。

無論好壞,靈活的 SSL 已經出現,互聯網必須適應。 與此同時,網站所有者有責任接受教育並做出負責任的決定。

將 HTTP 請求重定向到 HTTPS

使網站能夠在 HTTPS 上運行並不能確保請求將實際使用該協議。 如果您的網站已經存在了一段時間,那麼用戶可能已經使用 HTTP 為其添加了書籤。 您可以通過將以下代碼段添加到網站根目錄中的.htaccess文件的頂部,將所有 HTTP 請求重定向到新協議。 如果該文件不存在,您可以安全地添加它。

 <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule (.*) https://yourdomain.com/$1 [R=301,L] </IfModule>

如果.htaccess文件已經存在,請注意不要更改該文件中# BEGIN WordPress# END WordPress行之間的任何內容。 這些行由 WordPress 管理,每當刷新永久鏈接時,該部分中的內容就會被覆蓋。

恭喜

通過將您的網站升級到 HTTPS,您改進了您的網站、保護了用戶並參與了互聯網的發展。 而且它沒有花費你任何東西!