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

问题描述 投票:4回答:3

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

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

azure umbraco lets-encrypt
3个回答
4
投票

事实证明,问题与ACME质询文件无扩展且Umbraco管道尝试使用OWIN将所有无扩展请求路由到CMS内的文档这一事实有关。

James Dibble撰写了一篇很好的指南,介绍如何创建一个OWIN配置文件来拦截对“/.well-known”的任何请求,并提供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应用程序设置”,因为我之前从未使用过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


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
投票

在站点的web.config文件中,添加〜/ .well-已知的umbracoReservedPaths元素,并且Let的加密将能够访问验证URL。

<add key="umbracoReservedPaths" value="~/umbraco,~/.well-known" />
© www.soinside.com 2019 - 2024. All rights reserved.