我正在尝试使用Certify安装Letsencrypt证书,但出现错误,这(我认为)与 Certify 无关。问题是如何配置我的 web.config 以处理我的 Asp.Net Core - Angular2 应用程序。
我没有配置 web.config,Javascript 服务做了。在 Certify 网页上,页面底部写着我的问题:
我收到错误“自动检查无扩展名内容失败..”这意味着您的 Web 服务器配置不允许将没有扩展名的文件提供给站点访问者。不幸的是,这是 Lets Encrypt 服务的要求,以便它获取在您请求证书时在您的站点中自动创建的验证文件(更多信息)。
为了帮助满足此要求,我们尝试为您自动配置。如果您查看 {your site}.well-known\acme-challenge,您会看到我们创建了一个 web.config 和一个名为 configcheck 的文件。如果您无法在 Web 浏览器中浏览到此 configcheck 文件 (http://{your site}/.well-known/acme-challenge/configcheck 那么 Lets Encrypt 服务也无法访问它需要的文件。您可以编辑此文件夹中的 web.config 文件以使无扩展名文件正常工作,然后您可以重新请求您的证书。“.”或“.*”的 mimeMap 条目通常根据您的操作系统版本起作用。
一些专家可以帮助我更正我的 web.config 文件,该文件将支持 letencrypt 需要的任何内容。目前 .well-known/acme-challenge 中的任何内容都无法通过 WebBrowser 访问。
我的 web.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified"/>
</handlers>
<aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/>
<rewrite>
<rules>
<rule name="redirect" stopProcessing="true">
<match url="^$" />
<action type="Rewrite" url="/index.html" />
</rule>
<rule name="Angular 2 pushState routing" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_FILENAME}" pattern=".*\.[\d\w]+$" negate="true" />
<add input="{REQUEST_URI}" pattern="^/(api)" negate="true" />
<add input="{REQUEST_URI}" pattern="^/(.well-known)" negate="true"/>
<add input="{REQUEST_URI}" pattern="^/(signin)" negate="true" />
</conditions>
<action type="Rewrite" url="/index.html" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>