Назад | Перейти на главную страницу

Сертификат Let's Encrypt для MS CRM с использованием IIS

Я устанавливаю экземпляр MS CRM 2015 локально на сервере Win 2012 R2, IIS 8.5.

Я хотел бы использовать сервис Let's Encrypt для создания сертификатов для crm.example.com на этом сервере.

Let's Encrypt хочет использовать .well-known/acme-challenge каталог для проверки. MS CRM захватила веб-сайт по умолчанию и перенаправляет запросы в папку своего веб-сайта, используя проверку подлинности Windows.

Есть ли способ внести в белый список .well-known/acme-challenge папка на сайте CRM, чтобы избежать аутентификации?

Я пробовал добавить location раздел в web.config, но IIS выдает ошибку, потому что путь начинается с точки.

https://stackoverflow.com/questions/10351075/allow-anonymous-authentication-for-a-single-folder-in-web-config

Я попытался добавить обработчик для решения этой проблемы, например:

https://stackoverflow.com/questions/11728846/dots-in-url-causes-404-with-asp-net-mvc-and-iis но я получаю там ту же ошибку.

В качестве альтернативы Let's Encrypt можно проверить с помощью DNS, но я не совсем в этом разбираюсь и не могу найти доказательств того, что у моего провайдера есть API для этой цели.

Есть ли у меня другие варианты?

Спасибо @Peter Hahndorf за обходной путь, @benadams исправления letsencrypt для IIS для синтаксиса и @Mike Ratcliffe (редактирование ApplicatonHost.config)

Если вы хотите, чтобы Let's Encrypt выполнял запись в подпапку ./well-known на веб-сайте CRM, сначала создайте подпапку и измените конфигурацию следующим образом.

Отредактируйте 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.