azure - Azure LetsEncrypt 无法访问我的函数的 .well-known/acme-challenge
问题描述
我正在尝试使用letsencrypt站点扩展为我的天蓝色功能启用SSL,如此处所述。我按照那个 wiki 和这个网站上的说明进行操作。
但是,当它尝试验证网站时出现错误。
该错误表示无法访问 acme-challenge 页面 (404)。
这是我的web.config
下.well-known/
:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<clear />
<add name="ACMEStaticFile" path="*" verb="*" modules="StaticFileModule" resourceType="Either" requireAccess="Read" />
</handlers>
<staticContent>
<remove fileExtension="." />
<mimeMap fileExtension="." mimeType="text/plain" />
</staticContent>
</system.webServer>
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</configuration>
有人对可能出现的问题有任何想法吗?
解决方案
这是你可以做到的。
在您的函数应用中,为质询目录创建一个新代理(这是必需的,因为质询将是对/.well-known/acme-challenge
/ 的 http 获取,并且默认情况下,函数应用中的函数只会回答/api/
.
代理.json
{
"$schema": "http://json.schemastore.org/proxies",
"proxies": {
"LetsEncryptProxy": {
"matchCondition": {
"route": "/.well-known/acme-challenge/{code}"
},
"backendUri": "http://%WEBSITE_HOSTNAME%/api/letsencrypt/.well-known/acme-challenge/{code}"
}
}
}
这里的重要设置是路由模板:/.well-known/acme-challenge/{*rest}
这将匹配所有进入挑战目录的请求。
请注意,代理是一项预览功能,您必须启用它才能正常工作。
参考: https ://github.com/sjkp/letsencrypt-siteextension/wiki/Azure-Functions-Support https://blog.bitscry.com/2018/07/06/using-lets-encrypt-ssl-certificates-with -天蓝色功能/
推荐阅读
- reactjs - 使用默认数组值反应 useState 不会重新渲染
- javascript - 我是否只需要获取请求来构建 html?
- python - 如何使用 PyVista 将矢量箭头添加到 ABC 字段等 3D 绘图?
- xcode - 如何仅在 Xcode 中为控制台启用换行?
- php - Symfony 学说并发查询和操作
- python - 尝试使用 while 循环时出现回溯错误和“'int' 类型的参数不可迭代”
- python - 如何使用 pandas 和 matplotlib.pyplot 绘制半大型数据集(约 20k 点)?有没有更好的绘图工具?
- unity3d - Unity2D如何识别同一标签下的不同精灵?
- rsa-archer-grc - 如何识别包含自定义对象的所有 Archer 应用程序/问卷
- reactjs - 如何修复 Next.js Vercel 部署模块未找到错误