使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持

本文介绍了如何使用Kestrel为ASP.NET Core服务添加HTTPS支持,包括配置Kestrel、设置SSL证书以及更高级的配置选项。通过配置Kestrel的Listen方法和使用证书来实现HTTPS,并提醒了直接使用Kestrel的风险,建议采用反向代理服务器如Nginx等增强安全性。
摘要由CSDN通过智能技术生成

Kestrel 是一个跨平台的适用于 ASP.NET Core 的 Web 服务器。它内置集成在了 ASP.NET Core 项目模板中,所以编写和对外开放一个 Web 服务会非常简单。

虽然不推荐直接使用 Kestrel 对外提供 Web 服务,但为了简单的话,临时使用也是非常不错的选择。


Kestrel 是一个跨平台的适用于 ASP.NET Core 的 Web 服务器。

Kestrel 只是一个 Web 服务器,能够提供对外的 Web 服务;但它没有反向代理功能。也就是说当你使用 Kestrel 指定了一个端口后,这个端口的所有流量将被 Kestrel 处理,不能再与其他 Web 服务程序共用端口了。当然还有一些其他的原因(比如 Web 安全防护),所以通常并不推荐直接使用 Kestrel 对外提供 Web 服务。

但有一点——Kestrel 内置集成在了 ASP.NET Core 项目模板中,所以编写和对外开放一个 Web 服务会非常简单,这也使得 Kestrel 值得被临时使用一下。

配置 Kestrel

当你使用 dotnet 命令或者 Visual Studio 创建 ASP.NET Core 项目后,在 ConfigureWebHostDefaults 扩展方法的委托参数中,使用 webBuilder 对象可以用来配置 Kestrel 服务器。

    public static void Main(string[] args)
    {
        CreateHostBuilder(args).Build().Run();
    }

    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
++              webBuilder.ConfigureKestrel(serverOptions =>
++              {
++                  // 在这里设置 Kestrel 的一些配置属性。
++              })
                .UseStartup<Startup>();
            });

配置 https

配置 Kestrel 时,只需要调用 serverOptionsListen 方法设置监听的 IP 和端口。并且,可以额外写一个委托用来设置监听参数。

使用 listenOptions.UseHttps 即可使用 SSL 证书来支持 https 协议。

    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.ConfigureKestrel(serverOptions =>
                {
++                  serverOptions.Listen(IPAddress.Any, 5000, listenOptions =>
++                  {
++                      listenOptions.UseHttps(
++                          @"D:\blog.walterlv.com\ssl\blog-walterlv-com.pfx",
++                          "Hqh#Q*QqV%@aCnx41UB%M31H");
++                  });
                })
                .UseStartup<Startup>();
            });

这种把密码写在代码中的做法一定要拖出去打&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值