Jer*_*eck 5 umbraco azure lets-encrypt
我正在Azure中托管Ubraco CMS应用程序。按照此博客文章中的说明进行操作后,尝试使用Azure Let'sEncrypt网站扩展请求和安装LetsEncrypt证书时收到以下错误:
System.Exception: The Lets Encrypt ACME server was probably unable to reach http://domain.com/.well-known/acme-challenge/token
Run Code Online (Sandbox Code Playgroud)
我已经验证我所有的应用程序设置都是正确的,扩展程序已正确安装,并且似乎没有任何网络问题。是什么导致此问题?
事实证明,问题与 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。如果你只是 copypasta 他的代码,那么你会想要改变你的设置:
<add key="owin:appStartup" value="UmbracoDefaultOwinStartup" />
Run Code Online (Sandbox Code Playgroud)
对此:
<add key="owin:appStartup" value="Startup" />
Run Code Online (Sandbox Code Playgroud)
关于原因,这里有一篇详细的文章:
http://www.asp.net/aspnet/overview/owin-and-katana/owin-startup-class-detection
在站点的 web.config 文件中,将 ~/.well-known 添加到 umbracoReservedPaths 元素,Let's Encrypt 将能够访问验证 URL。
<add key="umbracoReservedPaths" value="~/umbraco,~/.well-known" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2335 次 |
| 最近记录: |