替你的wordpress網站增加ssl,https(以Ubuntu14.04為例)

個人是使用Let’s Encrypt

sudo apt-get update
sudo apt-get upgrade

git clone https://github.com/certbot/certbot.git
cd certbot
./certbot-auto

#如果你的ssl沒有打開,就執行一下下列指令,通常已經打開
sudo a2enmod ssl
sudo service apache2 restart

跑完上述指令後,會出現一些程式要求你輸入一些資料,包含email、網域..等等,照著輸入即可。

全部輸入完,就會出現下述訊息:

之後會產生key、憑證,路徑如下:

/etc/letsencrypt/archive/domain-name

另外還有一個路徑指向在live目錄裡,其實是軟連結裡面的檔案到archive裡面

/etc/letsencrypt/live/domain-name

接下來進到/etc/apache2/sites-available/
會發現多了000-default-le-ssl.conf這個檔案,裡面已經設定好一些SSL的連線資訊:

SSLCertificateFile /etc/letsencrypt/live/domain-name/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/domain-name/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateChainFile /etc/letsencrypt/live/domain-name/chain.pem

另外000-default.conf檔案也增加了rewrite rule

RewriteEngine on
RewriteCond %{SERVER_NAME} =domain-name
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

不過因為憑證三個月會到齊,所以之後要記得跑指令

cd /certbot
./certbot-auto renew

如果想省掉這件事,那就設一下crontab吧。

例外,如果要看憑證有效期間,可以輸入以下指令:

echo | openssl s_client -connect <you server here>:443 2>/dev/null | openssl x509 -noout -dates

 

之後上這個網址測試一下:

https://www.ssllabs.com/ssltest/analyze.html?d=domain-name

如果上述測試都沒問題,接下來就是最後一步。
由於wordpress會有不少連結,沒有進行加密的ssl連線。我自己是安裝一個外掛Really Simple SSL。安裝完啟動之後,它就會幫你處理網站全部的連結。

然後記得要去設定->一般選項裡,把網址都改成https。

安裝完這個外掛,再打開一下網址,網址列應該都是顯示安全的鎖頭了,不會再有驚嘆號的圖示。

這時應該可以打開網址 https://domain-name, 應該全部ok了!

參考文章與網址:
1.Let’s Encrypt 的 SSL 憑證安裝
2.https://letsencrypt.org/
3.Fix Non-SSL Elements on SSL Page
4.https://www.ssllabs.com/ssltest/
5.https://github.com/certbot/certbot
6.Welcome to the Certbot documentation!
7.It there a command to show how many days certificate you have?