【问题标题】:How to have ASP.NET Core running locally with HTTPS in Kubernetes如何在 Kubernetes 中使用 HTTPS 在本地运行 ASP.NET Core
【发布时间】:2021-01-28 19:30:00
【问题描述】:

我目前有一个用于 ASP.NET Core 的 docker-compose 设置。然而,当我在 Kubernetes 中测试集群时,我遇到了 Kestrel 的 SSL 问题。最初使用 Docker/Docker-compose 你可以设置本地 SSL

dotnet dev-certs https -ep %USERPROFILE%\.aspnet\https\<app_name>.pfx -p <password>

然后

dotnet dev-certs https --trust

终于

dotnet user-secrets set "Kestrel:Certificates:Development:Password" "<password>"

在 Docker-compose 中,我将卷设置为指向此证书

volumes:
      - ${APPDATA}\microsoft\UserSecrets\:/root/.microsoft/usersecrets
      - ${USERPROFILE}\.aspnet\https:/root/.aspnet/https/

我很好奇如何使用 kubernetes 在本地测试 https。我看到了一个 git repo https://github.com/Lybecker/k8s-friendly-aspnetcore,但是我不知道如何将 .pfx 文件从我的本地计算机获取到秘密中,我认为复制和粘贴不是要走的路。

我看了这篇 SO 帖子 Access .NET Core app on Kubernetes on both http and https

但是看起来他们正在使用 .Net 5,它使用 .key 和 .crt。我在使用 .pfx 文件的 .Net 3.1 上。

【问题讨论】:

    标签: asp.net-core ssl kubernetes kubernetes-secrets


    【解决方案1】:

    而不是使用 https 部署您的 .NET 核心容器,您应该使用 http 部署它并使用 nginx-ingress 提供 https,如此处所述https://cert-manager.io/docs/tutorials/acme/ingress/

    【讨论】:

    • 如果我的服务使用 gRPC 或任何基于 HTTP2 的协议(需要 TLS 证书)怎么办?
    猜你喜欢
    • 1970-01-01
    • 2019-06-02
    • 1970-01-01
    • 2020-01-27
    • 2021-07-26
    • 2020-11-29
    • 2020-11-02
    • 1970-01-01
    • 2021-06-26
    相关资源
    最近更新 更多