我在本地安装了MS CRM 2015的实例,在Win 2012 R2服务器IIS 8.5上安装。
我想使用Let's Encrypt服务为此服务器上的crm.example.com生成证书。
让我们encryption想要使用.well-known/acme-challenge目录进行validation。 MS CRM已经接pipe了默认网站,并使用Windows身份validation将请求redirect到其网站文件夹。
有没有办法将CRM网站中的.well-known/acme-challenge文件夹列入白名单 ,以避免身份validation?
我已经尝试在web.config添加一个location部分,但是由于path以点开始,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但我得到同样的错误。
作为一种替代方法,我们可以使用DNS来validationLet's Encrypt,但是我并不真正做到这一点,而且我也找不到证据表明我的提供者有一个用于此目的的API。
我有其他的select吗?
感谢@Peter Hahndorf的解决方法,以@benadams letsencrypt修复IIS的语法和@Mike Ratcliffe (编辑ApplicatonHost.config)
如果您希望让我们encryption写入CRM网站的./ well- known子文件夹,请先创build子文件夹,然后按如下方式更改configuration。
编辑ApplicationHost.config (主IISconfiguration文件),我的是在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>
这允许匿名authentication和任何用户访问CRM默认网站下的以点开头的path。
通过这个设置,我可以使用letsencrypt-win-simple PowerShell脚本来申请证书。