asp.net-core - 自托管 ASP.NET Core 应用程序不适用于 SSL
问题描述
我ASP.NET Core
使用命令行创建了一个示例应用程序:
dotnet new
并尝试使用命令运行它:
dotnet run
但是,在浏览器中打开 URL 时,它抱怨 SSL 无效。
我可以使用Visual Studio
完整版运行程序没有任何问题,但不能使用命令行运行它:
dotnet run
似乎Kestrel
由命令运行的dotnet run
需要额外的配置。
现在,问题是如何通过using运行我的ASP.NET Core
应用程序?https
Kestrel
我在Dot Net Core 2.2
和Visual Studio 2019
解决方案
似乎IIS Express
在幕后做了一些工作,包括SSL
认证的配置。所以,我专注于ASP.NET Core
的内部托管组件,即Kestrel
.
首先,我通过以下命令创建了 SSL 证书PowerShell
:
New-SelfSignedCertificate -DnsName localhost -CertStoreLocation "cert:\LocalMachine\My"
此命令创建一个认证,我可以通过management console / certificates
程序看到它。有关更多信息,请参阅此。创建新证书后,您需要将其导出为pfx
文件。要在管理控制台中执行此操作,请使用以下步骤:
- 将管理单元添加
Certificates
到管理控制台。 - 浏览
Personal\Certifcates
- 右键单击您新创建的证书,然后从“所有任务”中选择“导出”
- 选择显示“是,导出私钥”的选项
- 您会看到
pfx
被自动选中。点击下一步” - 设置密码和保存位置。
- 您已完成创建 pfx 文件
下一步是配置 ASP.NET Core 以使用此处pfx
描述的文件:
public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup < Startup > () .UseKestrel((hostingContext, options) => { if (hostingContext.HostingEnvironment.IsDevelopment) { options.Listen(IPAddress.Loopback, 9001); options.Listen(IPAddress.Loopback, 9002, listenOptions => { listenOptions.UseHttps("certificate.pfx", "password"); }); } }) .Build();
现在,问题应该得到解决。如果没有,请尝试由IIS Express
. 这在管理控制台中也可用。
推荐阅读
- jmeter - 如何为 Jmeter 请求获取客人的购物车 ID
- javascript - reactjs用户认证逻辑
- javascript - 如何显示当前获取 url 以及我的状态发生了什么?
- c# - JSON 不真实
- git - 如何单独提交拉取请求?
- authentication - 为什么 API 网关和认证服务应该不同?
- xcode - 如何手动将 Xcode 从 11.2 更新到 11.2.1?
- r - 在 R 中计算 RMSE 时遇到问题
- python - 如何修复“ValueError: Argument Z must be 2-dimensional”错误
- python-3.x - 创建具有权重的分类数据