ASP.NET Core创建根证书失败求助:Windows10+Docker环境运行报错
解决VS2017 + Docker + ASP.NET Core 2.0 「Failed to create certificate」问题
我之前在Windows 10 Hyper-V环境下用VS2017跑ASP.NET Core 2.0 Docker项目时,也踩过这个证书创建失败的坑!大概率是自动生成HTTPS证书时的权限不足或者配置映射问题,给你几个亲测有效的解决步骤:
方法一:手动生成并配置信任证书
这是最可靠的解决方式,绕开VS自动生成的问题:
- 以管理员身份打开PowerShell,运行下面的命令生成证书(把
YourStrongPassword换成你自己的密码,比如Docker123!):dotnet dev-certs https -ep $env:USERPROFILE\.aspnet\https\aspnetapp.pfx -p YourStrongPassword - 接着信任这个证书,避免浏览器或者容器报不安全:
dotnet dev-certs https --trust - 打开项目里的
docker-compose.override.yml文件,添加证书的环境变量和目录映射:
如果是Windows容器,修改配置如下:
如果是Linux容器,路径斜杠要改成Linux风格:version: '3.4' services: your-project-name: environment: - ASPNETCORE_ENVIRONMENT=Development - ASPNETCORE_URLS=https://+:443;http://+:80 - ASPNETCORE_Kestrel__Certificates__Default__Password=YourStrongPassword - ASPNETCORE_Kestrel__Certificates__Default__Path=C:\https\aspnetapp.pfx volumes: - ${USERPROFILE}\.aspnet\https:C:\httpsversion: '3.4' services: your-project-name: environment: - ASPNETCORE_ENVIRONMENT=Development - ASPNETCORE_URLS=https://+:443;http://+:80 - ASPNETCORE_Kestrel__Certificates__Default__Password=YourStrongPassword - ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx volumes: - ${USERPROFILE}\.aspnet\https:/https
方法二:确保VS2017以管理员身份运行
有时候VS没有足够权限写入系统证书存储,右键VS2017图标,选择「以管理员身份运行」,然后重新尝试运行Docker项目,很多时候这个简单操作就能解决问题。
方法三:清理旧证书后重新生成
如果之前生成过无效的localhost证书,可能会冲突:
- 按下
Win+R,输入certmgr.msc打开证书管理器 - 展开「个人」->「证书」,找到所有主题为
localhost的证书,右键删除 - 回到管理员PowerShell,重新运行
dotnet dev-certs https --clean,再执行方法一里的生成和信任命令
试完这些方法,应该就能正常启动Docker里的ASP.NET Core项目了!
内容的提问来源于stack exchange,提问作者Cheung
相关产品推荐
相关产品推荐

