HTTP Server

使用 Let’s Encrypt 取得 SSL 來設定 HTTPS 並強制使用 SSL 安全加密協定

71 / 100

如何讓架設的 WordPress 或是 Web Site 資料在傳輸中更加安全,以往想為網站加入 SSL 加密協定(HTTPS,也就是網址列上的綠色鎖頭圖示),之前都必須支付一筆費用來申請憑證,但有了 Let’s Encrypt 後將能免費申請憑證,如何作呢? 就讓我們繼續往下看下去吧 😀

  1. SSL 加密協定(HTTPS) 說明
  2. 取得 FREE SSL Certificate
  3. 在 Apache Server 安裝 SSL 憑證
  4. 網站強制使用 SSL 安全加密協定

 

  • SSL 加密協定(HTTPS) 說明

以往想為網站加入 SSL 加密協定(HTTPS,也就是網址列上的綠色鎖頭圖示),必須支付一筆費用來申請憑證,但有了 Let’s Encrypt 後將能免費申請憑證,且這一過程非常簡單、自動化,本站就是使用來作免費的 SSL 加密協定。Let’s Encrypt 是一個證書認證機構 (CA),該機構能夠讓您為域名創建免費的 SSL/TLS 證書。使用前應閱讀並同意Let’s Encrypt 服務條款Let’s Encrypt 對於 SSL 憑證取得方式有些不同,它沒有開放直接從網站輸入私密金鑰、CSR 檔案來取得憑證的介面,如果要安裝 Let’s Encrypt 憑證,必須要熟悉 Unix 指令,才能夠在遠端主機下指令來取得憑證。

有開發者推出一款名為 SSL For Free 線上工具,可從網站上取得免費 SSL 憑證,這是連接 Let’s Encrypt 的憑證簽發功能,不過無須自己到主機輸入安裝指令,即可透過網頁介面來取得憑證的相關檔案(包括私密金鑰、CA bundle 和憑證 crt 檔),再從控制台 SSL 功能將憑證安裝進去就能使用。

網站名稱:SSL For Free
網站鏈結:https://www.sslforfree.com/

 

  • 取得 FREE SSL Certificate

開啟 SSL For Free 網站後,直接在上方填入你要申請 Let’s Encrypt 憑證的網域名稱,可以用空白來分隔不同的網址,例如「polinwei.com www.polinwei.com life.polinwei.com」,填入後點選右邊的「Create Free SSL Certificate」繼續。

ssl-lets-encrypt

 

為了確定這個網域名稱使你所有,會有兩種驗證方式,如果你的網站本身開啟 FTP 功能的話,可使用「Automatic FTP Verification」來輸入相關資訊完成驗證;這裡使用手動的驗證方式,必須自己下載檔案,並依照說明上傳到主機。點選後,點選下方的「Manually Verify Domain」繼續。

ssl-lets-encrypt

 

點選網站上提供的檔案下載鏈結(有兩個檔案),依照說明建立兩層資料夾,將檔案放進去即可。記得結束前先透過以下兩個鏈結來看看能否正常讀取檔案,如果不行,代表你的路徑可能錯誤,重新檢查一次吧!總之要讓兩個鏈結都能正常開啟,再點選最下方的「Download SSL Certificate」,不然會出錯。

ssl-lets-encrypt

 

從網頁最下方點選「Download All SSL Certificate Files」就能打包這些檔案,解壓縮後可以取得一個私密金鑰(Privacy Key)、CA_bundle.crt 和 certificate.crt 三個檔案,返回你的主機控制台,即可將憑證安裝進去囉!

ssl-lets-encrypt-certificate

以上參考: https://free.com.tw/ssl-for-free/

 

  • 在 Apache Server 安裝 SSL 憑證

先參考這篇 利用 Apache 的 Virtual Host 功能來架設虛擬網站,所以只要在虛擬主機設定檔 httpd-vhosts.conf 中再加入一個虛擬主機即可

<VirtualHost *:443>
    ServerAdmin [email protected]
    DocumentRoot "/xampp/htdocs/life"
  ServerName local.life
  ServerAlias life.polinwei.com
    ErrorLog "logs/life-error.log"
    CustomLog "logs/life-access.log" common
  SSLEngine on      
  SSLCertificateKeyFile "/xampp/apache/conf/life/private.key"
  SSLCertificateFile "/xampp/apache/conf/life/certificate.crt"
  SSLCertificateChainFile "/xampp/apache/conf/life/ca_bundle.crt"
</VirtualHost>

就可以用 HTTPS 來流覽網站了

certificate information

 

  • 網站強制使用 SSL 安全加密協定

要作到這一個功能,只要在 .htaccess 裡加入下列幾行即可

#自動導向https
RewriteEngine On 
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]