在使用Let’s Encrypt在IIS上安裝SSL證書時,Let’s Encrypt會首先嚐試對IIS站點進行有效性驗證。其基本過程為:
1) 接收用戶輸入的主機名,如www.test.com
2) 接收用戶輸入的站點根目錄的全路徑,如c:\wwwroot
3) 嘗試在站點根目錄下創建.well-known目錄並在該目錄生成一個文件,文件內容為一串隨機字符串,Let’s Encrypt官網會嘗試訪問此隨機字符串。如果訪問成功,則站點驗證成功。
由於當IIS的MIME類型未對該隨機文件設定處理程序時,會出現如下的錯誤:
The ACME server was probably unable to reach http://www.test.com/.well-known/acme-challenge/xxx(隨機字符串)
這個是因為IIS未指定對沒有後綴名的文件進行何種處理,所以直接訪問此隨機文件,會提示錯誤。
打開IIS的詳細錯誤報告後,根據不同錯誤提示,可以有以下不同的解決方法
1) 錯誤1:
HTTP 錯誤 404.17 – Not Found
請求的內容似乎是腳本,因而將無法由靜態文件處理程序來處理。
解決方法:
1) 打開IIS管理器,選擇Web服務器。
2) 選擇右側 處理程序映射
3) 點擊右上角菜單 查看經過排序的列表
4) 列表最下方有個StaticFile的處理程序,將其移動到3個ExtensionlessUrlHandler的上方。
5) 重啟IIS服務。
2) 錯誤2:
HTTP 錯誤 404.3 – Not Found
由於擴展配置問題而無法提供您請求的頁面。如果該頁面是腳本,請添加處理程序。如果應下載文件,請添加 MIME 映射。
解決方法:
1) 打開IIS管理器,選擇Web服務器。
2) 選擇右側 MIME類型
3) 新增MIME類型,擴展名:*, 類型:application/octet-stream。
4) 重啟IIS服務。
若以上方法都無法解決問題,則可以嘗試恢復處理程序映射:
1) 打開IIS管理器,選擇Web服務器。
2) 選擇右側 處理程序映射
3) 點擊 恢復為父項
4) 重啟IIS服務。
以下是部分截圖:
![錯誤信息:The ACME server was probably unable to reach](http://p2.ttnews.xyz/loading.gif)
![錯誤信息:The ACME server was probably unable to reach](http://p2.ttnews.xyz/loading.gif)
閱讀更多 漫漫開發路 的文章