全站從http升級到https(WordPress博客)


最近幾年HTTPS取代HTTP已經成為大趨勢,HTTP是超文本傳輸協議,信息是明文傳輸的,而HTTPS是安全超文本傳輸協議,需要證書和提供安全連接,換句話說,HTTPS是嵌套了SSL加密的HTTP連接,其內容由SSL先加密,然后再傳輸。

簡單來講,HTTPS是加過密的HTTP。由於網絡上傳輸的數據是加密的,用戶在瀏覽網頁時,除了用戶自己可以看到當前在看什么網頁,其他第三方是無法得知用戶在做什么的。比如用戶在網上登錄或輸入其他敏感信息進行傳輸時一旦使用HTTPS,那么數據傳輸就不是明文了,對於第三方來講就無法獲取你的敏感信息。

那么既然去趨勢,自己也嘗試着將自己的博客由HTTP升級到HTTPS,特做下記錄和總結。以防后續再用,或者給需要的人做參考。

SSL證書選擇

可以選擇騰訊雲、阿里雲合作的賽門鐵克簽署的證書,申請后可以免費使用一年,據說,一年后可以繼續申請,再換個證書就行了,有待驗證,具體可在如下頁面做申請,這里也不過多描述,申請的時候都有詳細的說明。

申請完成后,進行下載,里面有apache、nginx等對應服務的證書:

SSL證書的配置

可先參考:https://cloud.tencent.com/document/product/400/4143

Ubuntu下的apache2目錄結構是:

– 默認站點在 /var/www/
– 配置文件在 /etc/apache2/
– 日志在 /var/log/apache/
– 啟動腳本是 /etc/init.d/apache2

etc/apache2下的文件夾與文件

apache2.conf:Apache的主要配置文件,包含全局配置。
envvars:Apache2環境變量設置。
ports.conf:配置Apache監聽的端口。
mods-available:這個目錄包含模塊和模塊配置文件,不是所有的模塊都有配置文件。
mods-enabled:持有/etc/apache2/mods-available目錄下文件的鏈接,當該目錄下有一個模塊文件和其配置文件,那么Apache重啟后該模塊將生效。
sites-available:這個目錄包含Apache虛擬主機的配置文件。虛擬主機允許Apache配置多個站點並為每個站點配置不同的參數。后面下面配置的時候會配置80端口的http重定向為443的https。
sites-enabled:持有/etc/apache2/sites-available目錄下文件的鏈接。當Apache重啟后,該目錄中包含的站點將會被激活。
  • 下面以apache為例,將對應apache目錄下的文件上傳到服務器某一目錄文件,比如我的全部放在目錄/etc/apache2/sslcert
  • 安裝openssl執行:
sudo apt-get install openssl
  • 開啟ssl模塊執行:
sudo a2enmod ssl
  • 進入/etc/apache2/ports.conf查看是否監聽Listen 443,沒有就加上
  • 配置ssl虛擬站點,安裝openssl后會在/etc/apache2/site-available目錄下生成default-ssl文件,此時需要創建一個軟連接到/etc/apache2/sites-enabled目錄下:
sudo ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/001-ssl.conf

如下軟連接就建立好了:

- 修改 001-ssl.conf 配置

SSLEngine on
SSLCertificateFile  /etc/apache2/sslcert/2_www.87testing.com.crt
SSLCertificateKeyFile  /etc/apache2/sslcert/3_www.87testing.com.key
SSLCertificateChainFile  /etc/apache2/sslcert/1_root_bundle.crt
  • 配置好后重啟:
sudo service apache2 restart

這時候訪問https://87testing.com,就可以正常打開可信任了

設置HTTP重定向為HTTPS

  • 啟動重定向:
    sudo a2enmod rewrite #啟動rewrite mod
  • 設置http端口重定向,在網站根目錄wordpress下新建.htaccess文件,在文件中輸入內容:
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.87testing.com/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^87testing.com [NC]
RewriteRule ^(.*)$ https://www.87testing.com/$1 [L,R=301]

將數據庫寫死的http修改為https

服務器上進入當前數據庫:

Update wp_options set option_value = ‘https://87testing.com’ where option_id in(1,2);
update wp_posts set post_content = replace(post_content, 'http://87testing.com','https://87testing.com');

最后重啟下apache服務:

sudo service apache2 restart

此時不管輸入87testing.com就可以正常跳轉到https://87testing.com,並且可信任了。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM