SSL For Free: 使用Let’s Encrypt 申請SSL憑證

當網站加入 SSL 加密協定(HTTPS,網址列會是綠色鎖頭圖示),就不會被讀者誤會是危險網站或詐騙網站了(HTTP,是紅色鎖頭圖示)。申請方式其實很簡單,但是因為是免費的,所以每3個月需要重新申請SSL憑證。我覺得不會太麻煩,反正就用手機日曆功能提醒自己就好了,或者注意線上申請網站,發送的電子郵件通知信,通常會在憑證到期前一個星期會收到信件,再找個時間更新憑證就可以了!

而我也是最近才搞清楚 Let’s EncryptSSL For FreeZeroSSL 三者的關係,在文章中會一併說明。雖然有沒有搞清楚它們之間的關係並不影響憑證的申請,純粹是基於好奇心,才會在空閒時爬文。

Let’s Encrypt、 SSL For Free、ZeroSSL 三者的關係

簡單說,從下圖可以清楚了解 Let’s Encrypt 是憑證中心,可以透過線上工具網站( ZeroSSL、SSL For Free、 Certbot)的幫忙,完成SSL憑證申請,然後再安裝於網站當中。整個流程都是免費的,不需要額外付費。假使是免費申請SSL的話,憑證效期只有 90 天,在期限到之前,必須再重新申請一次憑證來使用。

原本使用SSL For Free 來完成憑證申請已經好長一段時間了,可是從去年( 2020 )開始,想要重新申請憑證時,網站都會自動轉址到 ZeroSSL 來完成後續流程。一直也搞不懂原因,也害怕SSL憑證出狀況無法使用,所以就花了一些時間了解什麼是 ZeroSSL。接下來可以看一下如何利用 ZeroSSL 網站,完成整個憑證申請的流程!

10_ Let's Encrypt ZeroSSL SSLforFree
申請 SSL 憑證示意圖

現在前往SSL For Free網站的話,可以明顯看到: Never pay for S S L again. Powered by ZeroSSL with free 90-day certificates.不難理解, ZeroSSL 網站似乎已經取代SSL_For_Free 網站的申請功能的原因了。

09_ SSL for Free powered by zerossl
SSL For Free is powered by ZeroSSL

透過 ZeroSSL 網站,申請 SSL 的流程

輸入要申請的網址

前往 ZeroSSL 網站,輸入要申請憑證的網址。

11_ ZeroSSL website
ZeroSSL 網站: 輸入要申請的網址

建立帳號

這個帳號除了用來登入來維護所有憑證之外,還會收到未來 ZeroSSL 憑證到期的提醒信件。

12_ create account on ZeroSSL
建立帳號

填寫網域

13_ ZeroSSL New Certificate
填寫網域

憑證效期: 90天(免費版)

順利的話,在這一步當中可以看到【Domains】是綠色符號,這代表前一步的流程是正確的。接著因為是免費版憑證申請的關係,所以只能選 90-Day Certificate 這個選項,然後點選下一步。

14_ ZeroSSL 90 days
憑證效期: 90天(免費版)

選取 Auto-Generate CSR

15_ ZeroSSL CSR contact
選取 Auto-Generate CSR

ZeroSSL 方案選擇

因為是申請免費版憑證,所以直接點選下一步。

16_ ZeroSSL finish

驗證網站所有權

提供了三種驗證網站所有權的方式:

  • Email Verification
  • DNS ( CNAME )
  • HTTP File Upload

按照說明步驟,將測試檔案放在網站中,然後點選下一步即可。

17_-ZeroSSL-verification
上傳測試檔案到網站中
18_-ZeroSSL-verify-domain
驗證網站所有權

下載 SSL 憑證

當驗證網站所有權沒問題之後,接著就是要選擇要下載的伺服器類型,然後把憑證下載到電腦中備份,最後按下一步。

19_-ZeroSSL-Download-Certificate

安裝 SSL 憑證到網站中

因為目前是使用 XAMPP 自架網站的關係,所以直接將剛剛下載的憑證檔案解壓縮,放在以下路徑後,開啟 XAMPP 控制面板,然後 restart Apache ,連上網站測試連線看看。假使可以正常連線的話,就完成所有憑證申請的流程了(下圖)。

  • ca_bundle.crt
    • 放在 C : \ xampp \ apache \ conf \ssl.crt \
  • certificate.crt
    • 放在 C : \ xampp \ apache \ conf \ssl.crt \
  • private.key
    • C : \ xampp \ apache \ conf \ssl.key \
20_-ZeroSSL-install-SSL-on-XAMPP
完成憑證申請

(已停用) 透過SSL_For_Free 網站,申請SSL的流程

連結到【SSL_For_Free】網站

點選下方連結,進到【SSL_For_Free】網站後,在欄位中填入你要申請 Let’s Encrypt 憑證的網域名稱,再用空白鍵來輸入不同的網址,例如

  1. 申請網站: https://www.sslforfree.com/
  2. 輸入網域名稱 (範例) : 【 hipay0.com www.hipay0.com 】
  3. 點選按鈕: 【 Create_Free_SSL_Certificate 】
02_ SSL For Free_ Let's Encrypt
連結到【 SSL_For_Free 】網站

使用 Manual Verification

可以看到剛剛輸入想要申請憑證的網址會列在最上方,假使正確的話,就可以按【 Manual Verification 】

  • Manual Verification
    • Upload verification files manually to your domain to verify ownship
03_ SSL For Free_ Let's Encrypt
使用 Manual Verification

Manually Verify Domain

滑鼠往下滑動,然後按【 Manually Verify Domain 】

04_ SSL For Free_ Let's Encrypt
Manually Verify Domain

建立 .well-known 資料夾

先打開 command windows ,在安裝 WordPress 的路徑下新增【 .well-known 】資料夾:

  • cd \
  • cd C : \ wamp64 \ www \ spa
  • mkdir .well-known
05_ SSL For Free_ Let's Encrypt
建立 .well-known 資料夾

建立 acme-challenge 資料夾

然後開啟檔案總管,在 C : \ wamp64 \ www \ spa \ .well-known \ 的路徑下再新增【 acme-challenge 】資料夾

06_ Let's Encrypt
建立 acme-challenge 資料夾

Download Certificate

在下方【 1 】的兩個檔案下載到【 1 – 5 】的路徑下,然後點選下方【 2 】兩個連結,假使能夠開啟新的網頁,而且正確顯示文字的話,就代表成功了。接著按下【 Download_SSL_Certificate 】按鈕

07_ Let's Encrypt
Download Certificate

設定通知信箱

接著會出現帳號登入的畫面,就輸入你常用的 email 信箱,這樣子,憑證到期前一周,會透過這個 email,通知你要更新憑證。

09_ Let's Encrypt
設定通知信箱

下載憑證到電腦

然後把憑證下載到電腦

10_ Let's Encrypt
下載憑證到電腦

解壓縮憑證檔案

解壓縮後複製到 C : \ wamp64 \ bin \ apache \ apache2.4.37 \ conf ,這樣子就完成憑證申請了。

08_ Let's Encrypt
解壓縮憑證檔案

驗證網站

最後,在瀏覽器網址列輸入【 https://hipay0.com/ 】,假使可以進入登入畫面,就表示成功了!

Windows 10 自架網站流程圖

只要照著我的步驟做,相信你也可以不用額外花半毛錢,就可以在 Windows 10 的電腦上面,架設好屬於自己的專屬網站了(這篇文章可以看到自架網站的完整敘述)。而這系列的分享文章,是寫給架站新手 / 小公司 / 部落客的,不適用於大型企業 / 大神級…

網站DIY流程圖

Step 1、準備好硬體

– 電腦主機
– 路由器
初期
: 拿現有的路由器,具備設定通訊阜轉發就可以了。
後期: 決定要持續維護網站後,最好更換成具備防火牆功能的產品。畢竟防火牆功能的路由器,價格都不便宜。本身使用的都是入門款的防火牆(Vigor2120n使用心得),到現在,網站還沒中毒或被駭的經驗。只是每天在後台都看到一堆惡意連線,心裡難免怕怕的,所以只能靠硬體防火牆多少排除一下這些狀況。
進階: 自架免費防火牆OS(pfsense的使用心得),可以操作的細部功能更多了,防火牆設定也變得靈活。

Step 2、安裝架站安裝包

– 安裝 XAMPP 要記得在最後允許 Windows 防火牆存取【公用網路】與【私人網路】
– 設定 phpMyadmin (可以參考: 在Windows10架設WordPress網站)
– 設定 WordPress(可以參考上面連結: 在Windows10架設WordPress網站)

Step 3、申請 DDNS

使用 NoIP DDNS 的服務,將 IP 轉換成專屬網址,申請流程請參考: 申請 NoIP DDNS 的流程

Step 4、申請 SSL 數位憑證

當網站加入 SSL 加密協定(HTTPS,網址列會是綠色鎖頭圖示,申請流程請參考: ZeroSSL 的網站中完成申請),就不會被讀者誤會是危險網站或詐騙網站了(HTTP,是紅色鎖頭圖示)。也有利於 Google 搜尋排名。

Step 5、軟體設定

– VirtualHost 目的是使用同一個網頁伺服器 ( Apache ) 架設多個網站 ( e.g. hipay0.com ; www.hipay0.com ),當使用者以不同網域名稱 ( e.g. hipay0.com ; www.hipay0.com… ) 連到主機時, Apache 會依據不同的網址,回應不同的網頁內容。
– Apache 、WordPress、mySQL、phpMyadmin…的參數微調,全部都集中在VirtualHost 設定這一篇做分享。

6、網站上線

接下來要面對的問題,就是根據您的網站應用、屬性,在社團中發問,尋找解決方法了,例如:
– 如何提供 Pagespeed Insights 的分數
– 如何提高網站排名
– 如何改善SEO 的問題
– 如何提高流量
– 如何增加被動式收入、加入聯盟行銷
– 如何使用 Google Keyword Planner
-…
接下來的部分,會分享一些進階版的內容,有興趣的人,可以參考下一個章節。

Q&A for SSL

透過 ZeroSSL 網站申請憑證的話,需要安裝其他程式嗎?

不用。無須下載或安裝任何外掛程式,只需要透過瀏覽器,在 ZeroSSL 網站中填入相關資訊,照著憑證產生精靈的步驟做即可或取憑證。

申請憑證有次數限制嗎

沒有,可以免費無限次數續用(Renew)。

為什麼免費版憑證只有 90 天的有效期限呢?

跟密鑰洩露和誤發行有關係,假使發生錯誤或被盜的話,可以在較短的時間內發現、解決。

只能透過 ZeroSSL or SSL_For_Free 來申請憑證嗎?

幾個常見的網站都提供憑證申請,只是在臺灣比較多人討論 SSL_For_Free 、 ZeroSSL。其餘的工具有:
1. Let’s Encrypt: https://letsencrypt.org/
2. Certbot: https://certbot.eff.org/
3. WoSign’s KuaiSSL: 網站似乎有問題,無法連線
4. Free_SSL_Certificate: https://www.freesslcertificate.org/

免費版憑證,只能考慮使用 Let’s Encrypt 嗎?

可以有其它選擇,例如: The better option is provided by Cloudflare.
Cloudflare 不僅只是 CDN service provider,也提供免費版的憑證讓 CDN 用戶使用。

分享文章