带https证书的blazorserver的docker部署
准备工作
$ dotnet --version
5.0.400
IDE: Visual Studio for mac 2019
项目实施
-
新建项目:
App
->Blazor Server App
->.Net 5.0
+individual Authentication
+Configure for Https
->Create a project directory within the solution direction
-
添加docker支持:选择项目->
add docker support
,会自动添加docker部署需要的文件├── TestBlazorHTTPS │ ├── App.razor │ ├── Areas │ ├── Data │ ├── Dockerfile //add │ ├── Pages │ ├── Program.cs │ ├── Properties │ ├── Shared │ ├── Startup.cs │ ├── TestBlazorHTTPS.csproj │ ├── _Imports.razor │ ├── app.db │ ├── appsettings.Development.json │ ├── appsettings.json ├── TestBlazorHTTPS.sln ├── docker-compose.dcproj //add ├── docker-compose.override.yml //add └── docker-compose.yml //add
查看docker-compose.override.yml内容
version: '3.4' services: testblazorhttps: environment: - ASPNETCORE_ENVIRONMENT=Development - ASPNETCORE_URLS=https://+:443;http://+:80 ports: - "80" - "443" volumes: - ~/.aspnet/https:/root/.aspnet/https:ro - ~/.microsoft/usersecrets:/root/.microsoft/usersecrets:ro
-
准备证书(mac版本):
dotnet dev-certs https -ep ${HOME}/.aspnet/https/TestBlazorHTTPS.pfx -p 123456 dotnet dev-certs https --trust
将在${HOME}/.aspnet/https/目录下生成证书文件
TestWithoutIdentity.pfx
,密码为123456
TestBlazorHTTPS.pfx
的命名必须与项目名称相同 -
在docker-compose.override.yml中添加证书信息:
- ASPNETCORE_Kestrel__Certificates__Default__Password=123456 - ASPNETCORE_Kestrel__Certificates__Default__Path=/root/.aspnet/https/TestBlazorHTTPS.pfx
即如下:
version: '3.4' services: testblazorhttps: environment: - ASPNETCORE_ENVIRONMENT=Development - ASPNETCORE_URLS=https://+:443;http://+:80 - ASPNETCORE_Kestrel__Certificates__Default__Password=123456 - ASPNETCORE_Kestrel__Certificates__Default__Path=/root/.aspnet/https/TestBlazorHTTPS.pfx ports: - "80" - "443" volumes: - ~/.aspnet/https:/root/.aspnet/https:ro - ~/.microsoft/usersecrets:/root/.microsoft/usersecrets:ro
-
运行
docker-compose up
,查看docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8a4967efe61d testblazorhttps "dotnet TestBlazorHT…" 35 seconds ago Up 30 seconds 0.0.0.0:53283->80/tcp, 0.0.0.0:53282->443/tcp testblazorhttps_testblazorhttps_1
-
浏览器打开 https://localhost:53282
参考
-
https://docs.microsoft.com/en-us/aspnet/core/security/docker-compose-https?view=aspnetcore-5.0
-
- 证书的名称必须要与项目的名称相同。
The certificate name, in this case aspnetapp.pfx must match the project assembly name.
- 证书的名称必须要与项目的名称相同。