【问题标题】:How do I setup lets encrypt for an Azure Linux Service Web App如何为 Azure Linux 服务 Web 应用设置加密
【发布时间】:2020-06-17 05:04:15
【问题描述】:

我找到了很多关于如何为 Azure Windows Web 应用服务设置 Lets Encrypt 的指南,但我根本找不到基于 Linux 的服务的任何指南.

以下是此类教程的两个示例(需要 windows)。

在上面的教程以及我发现的所有其他教程中,您需要使用 Web App Extensions 每 3 个月进行一次证书的实际更新。但这些不适用于 Linux 应用

这是您尝试导航到 Azure 门户时所看到的全部内容。

那么,谁有关于如何为 Azure Linux 服务设置自动化 Let's encrypt 证书的任何链接或有用的提示?

我确定人们也会想要 Lets Encrypt for Linux 应用程序吗?

【问题讨论】:

    标签: azure azure-web-app-service lets-encrypt


    【解决方案1】:

    你可以set up a Let's Encrypt SSL Cert for Azure Web App with Linux in 5 steps

    1. 安装 Certbot 客户端
    2. 使用 Certbot 创建 Let's Encrypt Cert(手动)
    3. 使用 OpenSSL 将 PEM 转换为 PFX for Azure

      openssl pkcs12 -inkey /work-dir-path/live/website.com/privkey.pem -in /work-dir-path/live/website.com/cert.pem -export -out /work-dir-path/live/website.com/cert.pfx

    4. 使用 Azure CLI 方法将 PFX 证书上传到 Azure 门户

      az webapp config hostname add --webapp-name $webappname --resource-group $resourceGroup \ --hostname $fqdn

      thumbprint=$(az webapp config ssl upload --certificate-file $pfxPath \ --certificate-password $pfxPassword --name $webappname --resource-group $resourceGroup \ --query thumbprint --output tsv)

    5. 使用 Azure CLI 方法将上传的 SSL 证书绑定到您的 webapp 门户

      az webapp config ssl bind --certificate-thumbprint $thumbprint --ssl-type SNI \ --name $webappname --resource-group $resourceGroup

    另外,Azure 允许您创建一个免费证书并将其添加到您的应用服务应用中,只需单击几个按钮。由DigiCert发布,由应用服务管理,自动续订。见Azure docs

    【讨论】:

    • 这样不会自动更新证书吧?
    • 我也注意到 Azure 中的免费证书,我认为这可能是我最好的选择。不幸的是,它们不支持子域,但这可能是为了简单而付出的小代价
    • 最好的是免费的应用服务托管证书,它可以自动更新。
    • 您还有什么问题吗?
    • 不,我理解你的回答,这需要我每 3 个月手动更新 Letsencrypt 证书,或者使用 MS 证书,但他们的证书在允许的范围内非常有限。两种解决方案都不是很好(但这不是你的错)。我希望有人能提出更好的方法来解决这个问题。
    【解决方案2】:

    我最近找到了一个非常好的解决这个问题的方法。您可以使用 let's encrypt web app renewer 安装和更新 Linux Web 应用程序的证书。

    1. 为 Windows 创建免费应用计划
    2. 为 Windows 创建一个 Web 应用程序
    3. 按照 Github 页面上的说明进行操作 - 设置它以续订 linux Web 应用程序证书(任意数量)
    4. 每 3 个月安排一个作业以访问 webbook 或使用 azure 函数或任何其他选项触发作业。

    有一些技巧可以让它在 linux 上与 .net 核心一起正常工作,尤其是在您使用 spa 服务的情况下。由于 spa 静态文件,我不得不将letsencrypt:webAppName-webRootPath 配置设置为d:\home\site\wwwroot\wwwroot。

    完成!

    【讨论】:

    • 只是关于 web root 的最后一部分的注释,这取决于您使用的运行时。如果您正在运行 ASP.NET Core,则该路径是正确的,但如果您正在运行一个节点应用程序,并且您正在直接提供文件,则它不会位于子文件夹 wwwroot 中。
    猜你喜欢
    • 2021-10-25
    • 1970-01-01
    • 2022-01-08
    • 2018-04-17
    • 1970-01-01
    • 1970-01-01
    • 2019-04-17
    • 2014-03-25
    • 2021-03-13
    相关资源
    最近更新 更多