現在由於安全性意識的普及,許多網站已經由過去的http,轉而使用更安全的https了。要使用https,首先得有一組憑證。但是…要弄到憑證可不是那麼簡單的,且在過往要拿到「被公認」的憑證,通常是要花錢的;自己做一個?是可以啦,但是得請瀏覽者在電腦中安裝這組憑證,蠻不便民的。
近年因為Google 等大企業開始推廣https,以及在Google Chrome瀏覽器將http標示為不安全等,帶動了https的需求。但是前面講到https需要一組憑證,所以便開始有組織提供免費的SSL憑證開放大家申請使用,讓網站可以使用更安全的https。
說到免費的SSL,我知道且有實際申請過的有SSL for free、Let’s Encrypt+certbot,以及Always on SSL三家。就實際使用經驗而言,我覺得Always on SSL的配置較難(憑證有拿到,但是在伺服器上安裝卻碰了一鼻子灰,最後失敗),SSL for free次之,Let’s Encrypt+certbot最容易上手。但就效期長短而言,Always on SSL長達一年,為三者當中最長的;另外兩者只有三個月。
SSL for free也是使用Let’s Encrypt的憑證,但缺點就是每次效期將屆滿時必須自行前往官網續期(會寄Email通知),然後換掉舊的憑證檔案。相對於此,Let’s Encrypt+certbot就真的方便許多了。只要會Linux指令,從申請、安裝、設定,乃至未來的更新,只要一個程式就可以幫你搞定了。
這篇文章主要就是介紹,如何使用certbot程式來替伺服器安裝SSL憑證。
示範平台
操作流程
前置作業
![]() ![]() |
別忘了把ServerName參數設定正確! |
設定certbot軟體庫(Ubuntu)
安裝certbot
Debian在啟用backports軟體庫且更新過快取後,執行sudo apt-get install python-certbot-apache -t stretch-backports。
使用certbot安裝SSL憑證
- 詢問Email地址(在憑證快到期時通知)
- 是否要接收EFF電子報(選”no”,如果你要看就選”yes”吧)
- 接受使用條款
- 要申請的網域(它會讀取Apache的網站設定檔,只要有正確設定,顯示出來的應當是正確的網址):如果有多個網站,可選擇要申請的那一組或者全選
- 是否要設定自動導向:這裡有兩種方案可以選擇:
- 不設定:訪客可以選擇以http或https瀏覽網站,兩者各自獨立。
- 設定:不論訪客使用http或https網址瀏覽網站,都會自動導向到有https的網站。