Azure LetsEncrypt扩展无法在Umbraco应用中访问.well-known / acme-challenge

时间:2016-08-09 15:38:57

标签: azure umbraco lets-encrypt

我在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

我已经确认我的所有应用设置都是正确的,我的扩展程序已正确安装,并且似乎没有任何网络问题。可能导致这个问题的原因是什么?

3 个答案:

答案 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" />