1. 程式人生 > 其它 >VS-構建容器化應用DockerFile && 啟用 SSL 的 ASP.NET Core 應用

VS-構建容器化應用DockerFile && 啟用 SSL 的 ASP.NET Core 應用

參考

VS-構建容器化應用DockerFile && 啟用 SSL 的 ASP.NET Core 應用

SSL證書

docker-https

設定ssl證書

docker 對映證書命令

docker run --rm -it -p 8000:80 -p 8001:443 -e ASPNETCORE_URLS="https://+;http://+" -e ASPNETCORE_HTTPS_PORT=8001 -e ASPNETCORE_Kestrel__Certificates__Default__Password="crypticpassword" -e ASPNETCORE_Kestrel__Certificates__Default__Path=/https/DockerDemo.pfx -v /mnt/c/Users/JinXi/AppData/Roaming/ASP.NET/Https:/https/ dockerdemo:new

實踐完整步驟

  • %APPDATA%\ASP.NET\Https 預設證書位置

  • DockerDemo專案名稱,必須要證書名稱一致

  • crypticpasswordSSL證書密碼

在window宿主機設定證書
  • DockerDemo\DockerDemo.csproj專案相對路徑
  • C:\Users\JinXi\AppData\Roaming\ASP.NET\Https可以使用相對路徑
移除已經存在的user-secrets
dotnet user-secrets remove "Kestrel:Certificates:Development:Password" -p DockerDemo\DockerDemo.csproj
清除證書
dotnet dev-certs https --clean
重新生成證書
dotnet dev-certs https -ep C:\Users\JinXi\AppData\Roaming\ASP.NET\Https\DockerDemo.pfx -p crypticpassword
dotnet dev-certs https --trust
dotnet user-secrets -p DockerDemo\DockerDemo.csproj set "Kestrel:Certificates:Development:Password" "crypticpassword"
執行容器命令,對映資料卷SSL證書
  • /mnt/c/Users/JinXi/AppData/Roaming/ASP.NET/Https為wsl下的絕對路徑
docker run --rm -it -p 8000:80 -p 8001:443 -e ASPNETCORE_URLS="https://+;http://+" -e ASPNETCORE_HTTPS_PORT=8001 -e ASPNETCORE_Kestrel__Certificates__Default__Password="crypticpassword" -e ASPNETCORE_Kestrel__Certificates__Default__Path=/https/DockerDemo.pfx -v /mnt/c/Users/JinXi/AppData/Roaming/ASP.NET/Https:/https/ dockerdemo:new