龙空技术网

通过 HTTPS 在 Docker 上宿主 ASP.NET Core 映像

老衲法号不行 178

前言:

当前姐妹们对“aspnet登录验证”大概比较讲究,朋友们都需要知道一些“aspnet登录验证”的相关文章。那么小编在网摘上收集了一些有关“aspnet登录验证””的相关知识,希望兄弟们能喜欢,咱们一起来了解一下吧!

默认情况下,ASP.NET Core 使用 HTTPS。 HTTPS 依赖于信任、标识和加密的 证书 。

本文档说明如何使用 .net 命令行界面 (CLI) 使用 HTTPS 运行预生成的容器映像。 有关如何在 Visual Studio 中运行 docker 的说明,请参阅通过 HTTPS 开发具有 Docker 的 ASP.NET Core 应用程序。

此示例需要 Docker 17.06 或更高版本的 Docker 客户端。

必备条件

本文档中的某些说明需要 .Net Core 2.2 SDK 或更高版本。

证书

针对域的生产主机需要证书颁发机构颁发的证书。 Let's Encrypt 是提供免费证书的证书颁发机构。

本文档使用 自签名开发证书 来托管预生成的映像 localhost 。 说明类似于使用生产证书。 生成的证书 dotnet dev-certs 仅供使用 localhost , 应在 Kubernetes 等环境中使用。 若要在 Kubernetes 群集中支持 HTTPS,请使用在 群集中管理 Tls 证书 所提供的工具,在 pod 中设置 tls。

使用 dotnet dev 证书创建用于开发和测试的自签名证书。

对于生产证书:

此 dotnet dev-certs 工具不是必需的。证书不需要存储在说明中使用的位置。 尽管不建议在网站目录中存储证书,但任何位置都应有效。

以下部分中包含的说明使用 Docker 的命令行选项将证书装载到容器中 -v 。 可以使用 Dockerfile 中的命令将证书添加到容器映像 COPY 中,但不建议这样做。 由于以下原因,不建议将证书复制到映像:

使用同一个映像测试开发人员证书非常困难。使用同一个映像通过生产证书进行托管很困难。证书泄露存在重大风险。用 HTTPS 运行预生成的容器映像

使用以下有关操作系统配置的说明。

使用 Linux 容器 Windows

生成证书并配置本地计算机:

dotnet dev-certs https -ep %USERPROFILE%\.aspnet\https\aspnetapp.pfx -p { password here }dotnet dev-certs https --trust

在上述命令中,将替换 { password here } 为密码。

在命令行界面中使用为 HTTPS 配置的 ASP.NET Core 运行容器映像:

docker pull mcr.microsoft.com/dotnet/core/samples:aspnetappdocker run --rm -it -p 8000:80 -p 8001:443 -e ASPNETCORE_URLS=";; -e ASPNETCORE_HTTPS_PORT=8001 -e ASPNETCORE_Kestrel__Certificates__Default__Password="password" -e ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx -v %USERPROFILE%\.aspnet\https:/https/ mcr.microsoft.com/dotnet/core/samples:aspnetapp

使用 PowerShell时,请将替换 %USERPROFILE% 为 $env:USERPROFILE 。

密码必须与用于证书的密码匹配。

注意:在这种情况下,证书必须是 .pfx 文件。 .crt .key 示例容器不支持使用带有或不带密码的或文件。 例如,在指定文件时 .crt ,容器可能会返回错误消息,如 "服务器模式 SSL 必须使用具有关联私钥的证书"。 当使用 WSL时,验证装载路径以确保证书正确加载。

macOS 或 Linux

生成证书并配置本地计算机:

dotnet dev-certs https -ep ${HOME}/.aspnet/https/aspnetapp.pfx -p { password here }dotnet dev-certs https --trust

dotnet dev-certs https --trust仅 macOS 和 Windows 支持。 你需要以分发的支持方式信任 Linux 上的证书。 可能需要在浏览器中信任该证书。

在上述命令中,将替换 { password here } 为密码。

使用为 HTTPS 配置的 ASP.NET Core 运行容器映像:

docker pull mcr.microsoft.com/dotnet/core/samples:aspnetappdocker run --rm -it -p 8000:80 -p 8001:443 -e ASPNETCORE_URLS=";; -e ASPNETCORE_HTTPS_PORT=8001 -e ASPNETCORE_Kestrel__Certificates__Default__Password="password" -e ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx -v ${HOME}/.aspnet/https:/https/ mcr.microsoft.com/dotnet/core/samples:aspnetapp

密码必须与用于证书的密码匹配。

使用 Windows 容器的 windows

生成证书并配置本地计算机:

dotnet dev-certs https -ep %USERPROFILE%\.aspnet\https\aspnetapp.pfx -p { password here }dotnet dev-certs https --trust

在上述命令中,将替换 { password here } 为密码。 使用 PowerShell时,请将替换 %USERPROFILE% 为 $env:USERPROFILE 。

使用为 HTTPS 配置的 ASP.NET Core 运行容器映像:

docker pull mcr.microsoft.com/dotnet/core/samples:aspnetappdocker run --rm -it -p 8000:80 -p 8001:443 -e ASPNETCORE_URLS=";; -e ASPNETCORE_HTTPS_PORT=8001 -e ASPNETCORE_Kestrel__Certificates__Default__Password="password" -e ASPNETCORE_Kestrel__Certificates__Default__Path=\https\aspnetapp.pfx -v %USERPROFILE%\.aspnet\https:C:\https\ mcr.microsoft.com/dotnet/core/samples:aspnetapp

密码必须与用于证书的密码匹配。 使用 PowerShell时,请将替换 %USERPROFILE% 为 $env:USERPROFILE 。

标签: #aspnet登录验证