我在Azure中托管了一个Ubraco CMS应用。按照this blog post中的说明操作后,当我尝试使用Azure Let'sEncrypt site extension请求并安装LetsEncrypt证书时,我收到以下错误:
System.Exception: The Lets Encrypt ACME server was probably unable to reach http://domain.com/.well-known/acme-challenge/token
我已经确认我的所有应用设置都是正确的,我的扩展程序已正确安装,并且似乎没有任何网络问题。可能导致这个问题的原因是什么?
答案 0 :(得分:4)
事实证明,问题与ACME质询文件无扩展且Umbraco管道尝试使用OWIN将所有无扩展请求路由到CMS内的文档这一事实有关。
James Dibble撰写了一篇很好的指南,介绍了如何创建一个OWIN配置文件来拦截对" /。众所周知的"并改为提供ACME挑战文件:
https://www.jdibble.co.uk/blog/using-letsencrypt-with-umbraco
你可以在这里找到他的代码的要点:
https://gist.github.com/dibble-james/f47b0cba3494381588482c7f185861bf
他的教程遗漏的一件事是我还必须安装Microsoft.Owin.StaticFiles包。我也不知道他的意思是"更新你的web.config中的owin:appStartup app设置,"因为我之前从未使用过OWIN。如果你只是复制他的代码,那么你想要改变你的设置:
<add key="owin:appStartup" value="UmbracoDefaultOwinStartup" />
对此:
<add key="owin:appStartup" value="Startup" />
这里有一篇详细的文章说明原因:
http://www.asp.net/aspnet/overview/owin-and-katana/owin-startup-class-detection
答案 1 :(得分:4)
我只是将验证文件写为必需文件夹中的index.html并具有以下重写规则,因此它提供了html文件:
<rule name="AcmeChallenge" patternSyntax="Wildcard">
<match url=".well-known/acme-challenge*" />
<action type="Rewrite" url="{R:0}/index.html" />
</rule>
答案 2 :(得分:1)
在网站的web.config文件中,在umbracoReservedPaths元素中添加〜/ .wellknown,然后“让我们的加密”将能够访问验证URL。
<add key="umbracoReservedPaths" value="~/umbraco,~/.well-known" />