如何在 Kubernetes 中使用 HTTPS 在本地运行 asp.net 核心

mjw*_*zor 6 ssl kubernetes asp.net-core kubernetes-secrets

我目前有一个用于 Asp.Net Core 的 docker-compose 设置。但是,在 Kubernetes 中测试集群时,我遇到了 Kestral 的 SSL 问题。最初使用 Docker/Docker-compose 你可以设置本地 SSL

dotnet dev-certs https -ep %USERPROFILE%\.aspnet\https\<app_name>.pfx -p <password>
Run Code Online (Sandbox Code Playgroud)

然后

dotnet dev-certs https --trust
Run Code Online (Sandbox Code Playgroud)

最后

dotnet user-secrets set "Kestrel:Certificates:Development:Password" "<password>"
Run Code Online (Sandbox Code Playgroud)

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

volumes:
      - ${APPDATA}\microsoft\UserSecrets\:/root/.microsoft/usersecrets
      - ${USERPROFILE}\.aspnet\https:/root/.aspnet/https/
Run Code Online (Sandbox Code Playgroud)

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

我在http 和 https 上查看了这个 SO post Access .NET Core app on Kubernetes on Kubernetes

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

Pet*_*sen 2

您不应使用 https 部署 .NET Core 容器,而应使用 http 进行部署并使用 nginx-ingress 提供 https,如下所述:https: //cert-manager.io/docs/tutorials/acme/nginx-ingress/

  • 如果我的服务使用 gRPC 或任何基于 HTTP2 的协议(需要 TLS 证书)怎么办? (4认同)