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

问题描述

我目前有一个用于 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>

然后

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 post Access .NET Core app on Kubernetes on both http and https

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

解决方法

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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...