採訪/編輯:
棒!城市編輯部
更新時間:
2019-07-31 21:52
發佈時間:
2017-11-06 08:33
分享:
累積人次:
1111

快速掌握IIS安裝Let’s Encrypt 免費 SSL,到期自動更新的方法

  • 快速掌握IIS安裝Let’s Encrypt 免費 SSL,到期自動更新的方法

自2017年開,幾個主流瀏覽器陸續會將沒有SSL的網站標示為不安全或提示連線有安全疑慮,而Google搜尋引擎並會優先收錄具有SSL的站台,因此為網站準備一個SSL證書勢在必行,但是一個SSL證書的價格並不是小網站站主所能負擔的,因此我們為各位找尋一個免費且簡單的SSL憑證 Let’s Encrypt ,接下來我們就開始介紹這個免費的SSL憑證申請單位 Let’s Encrypt。

Let's Encrypt是一個在2015年三季度推出的數位憑證認證機構(CA),由網際網路安全研究小組(縮寫ISRG)提供服務,用以實現新的數位憑證認證機構的協定被稱為自動憑證管理環境(Automatic Certificate Management Environment,ACME)。

Let's Encrypt申請 SSL 憑證過程十分簡單、自動化並且免費。他們推出了一個免費 SSL/TLS  憑證服務的申請計畫,頓時間SSL變成人人可以無成本的方式取得,只是這個免費SSL的有效期間很短,只有3個月。

Let's Encrypt SSL 憑證的使用方式有兩種:

第一種是使用 SSL for FREE 網站申請 https://www.sslforfree.com/ ,此方法適用主機代管,沒辦法直接在主機上執行什麼程式的網站。

驗證的方式有以下三種,可以任選一種來進行驗證:

1. 透過 DNS TXT 欄位、

2. 透過在 web root 目錄下新增「.well-known/acme-challenge/」子目錄,並在其中放入指定的兩個檔案作為驗證

3. 透過 FTP 上傳驗證

可以參考「快速掌握Let's Encrypt免費SSL憑證申請」這篇文章的步驟進行申請,這裡只是申請並下載憑證,產生的憑證是 .crt ,IIS 只能使用 .pfx 憑證檔,沒有辦法直接使用在IIS上面,必須再經過轉換,你可以參考 "使用 SSL For Free 產生 Let’s Encrypt SSL 憑證上傳給 IIS 站台使用",這篇文章將會教你如何將.crt轉成.pfx,然後在IIS中安裝憑證。

 

第二種是使用 Automatic Certificate Management Environment (ACME) ,使用指令來取得/更新憑證,也是本篇主要推薦的方法

雖說手動設定、更新 Let's Encrypt SSL 憑證並不困難,一個兩個網站還好,要是有很多個網站,或是每三個月都要記得記去更新一次,也是無敵麻煩的,所以整理這篇文章,讓大家可以一步一步照著執行,就可以擁有自動下載、安裝憑證、並且透過一些設定來完成自動化更新憑證。

首先你必須下載 https://github.com/Lone-Coder/letsencrypt-win-simple/releases/ 最後發行版本。

下載後,解壓縮到任一目錄底下。

.config 是這個軟體的設定檔,大致上不需修改,預設設定都很合理,例如更新天數設定60天,其主要用意就是讓你有時間去反應,以免時間到期來不及反應。
有興趣修改設定的人可以參考設定用法

letsencrypt.exe 就是這次的主角,你可以直接執行,會有互動式選項讓你直接選擇,並且幫你自動下載憑證、安裝憑證。

大致上的過程如下

1.執行程式,會先問你在SSL For Free所設定好的電子信箱位置,如果你還沒有設定好,請你參考文章開頭所介紹的網站,執行到可下載憑證並設定通知信箱為止。
2.接著問你要做哪些事情:
 

  • 選N:建立一個新的憑證,如果你還沒有憑證。


 


3.然後問你是要為一個網站產生憑證,還是一群,還是一個憑證全部網站通用或者是手動輸入,你可以選擇 1


4.接著就會顯示你目前IIS共有哪些網站,選你要安裝SSL的網站。


5.然後他就安裝好了。


是不是很方便!!而且他還有排程等功能。但是目前為止都需要手動,不是說自動安裝與自動更新嗎?

是的,由於這個程式提供了很多參數可以讓我們執行特定動作,如安裝憑證、更新憑證等功能,因此我們要利用這個特性,建立一個安裝憑證的批次檔,一個更新憑證的批次檔,然後利用伺服器的工作排程器,讓我們在特定時間內更新,因此我們現在要建立兩個批次檔。


建立憑證的批次檔指令如下:

letsencrypt.exe --plugin  --accepttos --usedefaulttaskuser --manualhost 你的網站網域名稱 --webroot 你的網頁存放實體目錄 --emailaddress 你的信箱

範例:
letsencrypt.exe --plugin  --accepttos --usedefaulttaskuser --manualhost www.himan.cc --webroot E:\WEBSITE\HIMAN --emailaddress mymail@gmail.com

更新憑證的批檔指令如下:
letsencrypt.exe --renew --accepttos --usedefaulttaskuser --manualhost 你的網站網域名稱 --webroot 你的網頁存放實體目錄 --emailaddress 你的信箱

範例:
letsencrypt.exe --renew  --accepttos --usedefaulttaskuser --manualhost www.himan.cc --webroot E:\WEBSITE\HIMAN --emailaddress mymail@gmail.com

大致說明一下我們會用到的指令
 

  • --plugin : 繞過主選單,直接進行安裝
  • --accepttos : 接受ACME服務條款,主要是跳過某些可能會彈出需要你確認的畫面
  • --usedefaulttaskuser :避免某些多執行緒問題,會使用當前的用戶去執行
  • --manualhost : 手動輸入網域名稱
  • --webroot : 網頁存放的目錄
  • --emailaddress : 你在SSL for Free 所填的提醒MAIL 
  • --renew : 更新憑證,當你使用這個指令時,會去查你的憑證是否已經超過設定檔中的更新天數,如果沒有超過是不會幫你更新的

如果你有興趣看更多,請到指令說明頁看看。

 

接下來只要我們將更新憑證的批次檔用工作排程排上行程,他就可以長時間為我們更新憑證。

 

工作排程的部分就不多做贅述了,但是需注意的地方是,工作排程的安全性選項,要設定不論使用者登入與否均執行,並且以最高權限執行。

 

 

 

 

相關文章推薦連結: