讓我們使用 IIS 為 MS CRM 加密證書
我在 Win 2012 R2 伺服器、IIS 8.5 上本地安裝 MS CRM 2015 實例。
我想使用 Let’s Encrypt 服務在此伺服器上為 crm.example.com 生成證書。
Let’s Encrypt 想使用該
.well-known/acme-challenge
目錄進行驗證。MS CRM 已接管預設網站,並使用 Windows 身份驗證將請求重定向到其網站文件夾。有沒有辦法將 CRM 網站內的
.well-known/acme-challenge
文件夾列入白名單,以避免身份驗證?我曾嘗試在 中添加一個
location
部分web.config
,但 IIS 會引發錯誤,因為路徑以點開頭。我嘗試添加一個處理程序來解決該問題,如:
https://stackoverflow.com/questions/11728846/dots-in-url-causes-404-with-asp-net-mvc-and-iis 但我在那裡遇到同樣的錯誤。
作為替代方案,Let’s Encrypt 可以使用 DNS 進行驗證,但我並沒有真正做到這一點,而且我找不到證據證明我的提供商有用於此目的的 API。
我還有其他選擇嗎?
感謝@Peter Hahndorf 提供了解決方法,感謝@benadamsletsencrypt 修復了IIS的語法,感謝@Mike Ratcliffe (編輯ApplicatonHost.config)
如果您希望 Let’s Encrypt 寫入 CRM 網站的 ./well-known 子文件夾,請先創建子文件夾並更改配置,如下所示。
編輯
ApplicationHost.config
(主要的 IIS 配置文件),我的在Windows/System32/inetsrv/config
. 如果您執行的是 64 位版本的 Windows,則必須使用 64 位編輯器(我使用的是 Windows 記事本)。我在該部分中添加/更改了以下幾行
<location path="Microsoft Dynamics CRM/.well-known">
。
<system.webServer> <validation validateIntegratedModeConfiguration="false" /> <staticContent> <mimeMap fileExtension=".*" mimeType="text/plain" /> <mimeMap fileExtension="." mimeType="text/plain" /> </staticContent> <handlers> <clear /> <add name="StaticFile" path="*" verb="*" type="" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" scriptProcessor="" resourceType="Either" requireAccess="Read" allowPathInfo="false" preCondition="" responseBufferLimit="4194304" /> </handlers> <security> <authentication> <anonymousAuthentication enabled="true" /> </authentication> </security> </system.webServer>
這允許匿名身份驗證和任何使用者訪問以點開頭的路徑,在 CRM 預設網站下。
通過此設置,我可以使用letsencrypt-win-simple PowerShell 腳本請求證書。