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

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

簡單來說,HTTPS是加過密的HTTP。因爲網絡上傳輸的數據是加密的,用戶在瀏覽網頁時,除了用戶本身能夠看到當前在看什麼網頁,其餘第三方是沒法得知用戶在作什麼的。好比用戶在網上登陸或輸入其餘敏感信息進行傳輸時一旦使用HTTPS,那麼數據傳輸就不是明文了,對於第三方來說就沒法獲取你的敏感信息。sql

那麼既然去趨勢,本身也嘗試着將本身的博客由HTTP升級到HTTPS,特作下記錄和總結。以防後續再用,或者給須要的人作參考。shell

SSL證書選擇

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

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

SSL證書的配置

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

Ubuntu下的apache2目錄結構是:服務器

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

etc/apache2下的文件夾與文件markdown

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,就能夠正常打開可信任了wordpress

設置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,而且可信任了。。。

相關文章
相關標籤/搜索