在 ASP.NET Core 中,可以使用 Kestrel 服务器来启用 HTTPS(SSL)协议。以下是 ASP.NET Core Kestrel 中使用 HTTPS 的完整攻略:
步骤一:创建证书
在使用 HTTPS 之前,需要创建一个证书。可以使用 OpenSSL 工具或者 Windows PowerShell 命令来创建证书。以下是使用 OpenSSL 工具创建证书的示例:
openssl req -x509 -newkey rsa:4096 -sha256 -days 365 -nodes -keyout example.key -out example.crt -subj "/CN=example.com" -addext "subjectAltName=DNS:example.com,DNS:www.example.com"
在上面的示例中,我们使用 OpenSSL 工具创建了一个名为 example.crt 的证书,并将其保存到 example.key 文件中。我们使用 -subj 参数指定了证书的主题,使用 -addext 参数指定了证书的主题备用名称。
步骤二:配置 Kestrel
在创建证书之后,需要在 ASP.NET Core 应用程序中配置 Kestrel。可以在 appsettings.json 文件中配置 Kestrel。以下是一个示例:
{
"Kestrel": {
"Endpoints": {
"Https": {
"Url": "https://localhost:5001",
"Certificate": {
"Path": "example.crt",
"KeyPath": "example.key"
}
}
}
}
}
在上面的示例中,我们在 appsettings.json 文件中配置了 Kestrel。我们使用 Endpoints 属性指定了 HTTPS 端口和证书的路径和密钥路径。
示例一:使用命令行配置 Kestrel
以下是一个示例,演示如何使用命令行配置 Kestrel:
dotnet run --urls "https://localhost:5001" --certificate "example.crt" --key "example.key"
在上面的示例中,我们使用 dotnet run 命令启动应用程序,并使用 --urls 参数指定了 HTTPS 端口,使用 --certificate 参数指定了证书的路径,使用 --key 参数指定了密钥的路径。
示例二:使用代码配置 Kestrel
以下是一个示例,演示如何使用代码配置 Kestrel:
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseKestrel(options =>
{
options.Listen(IPAddress.Loopback, 5001, listenOptions =>
{
listenOptions.UseHttps("example.crt", "example.key");
});
})
.UseStartup<Startup>();
在上面的示例中,我们在 CreateWebHostBuilder 方法中使用 UseKestrel 方法配置了 Kestrel。我们使用 Listen 方法指定了 HTTPS 端口和证书的路径和密钥路径。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:ASP.NET Core Kestrel 中使用 HTTPS (SSL) - Python技术站