【问题标题】:How to get self hosted HTTPS asp.net core site to automatically use certificate bound to port如何让自托管 HTTPS asp.net 核心站点自动使用绑定到端口的证书
【发布时间】:2021-09-02 02:41:56
【问题描述】:

如果我将证书绑定到端口(使用 netsh http add sslcert ipport=0.0.0.0: ...) - 在 WCF 中自托管 HTTPS 服务时我不需要指定只要我使用相同的端口,它就会自动找到证书。

在 ASP.NET Core 中,如果我自己托管 HTTPS 端点并且未指定证书,则会引发异常(“无法配置 HTTPS 端点。未指定服务器证书”)。

在 ASP.NET Core 中有没有办法让它自动使用已经绑定到端口的证书?

【问题讨论】:

  • 如果我没记错的话,您可以在将 SSL 证书绑定到端口时指定 GUID。您是否使用过 ASP.NET 应用程序的 GUID?这可能会奏效。
  • 我需要它像 WCF 那样完全自动化。我正在将 WCF 服务迁移到 ASP.Net Core,并且无法添加任何新配置项或使用带有证书的 GUID
  • 感谢@TheobaldDu,但该文章没有提供将证书注册到端口的方法

标签: c# asp.net-core wcf https


【解决方案1】:

所以经过一番研究,似乎 netsh http add sslcert ipport 将证书和端口绑定添加到了 Http.Sys Windows 组件

Http.Sys 被 IIS 和 WCF 使用,这就是为什么 WCF 会自动获取证书而无需指定它。

使用 Asp.net Core,它使用跨平台的 Kestrel,因此不使用基于 Windows 的 Http.Sys,因此不会自动获取证书。

我能找到的唯一解决方案是,ASP.Net Core 可以通过在构建主机时使用选项 UseHttpSys() 使用 Http.Sys 而不是 Kestrel 运行。这样做的缺点是它仅适用于 Windows,不能跨平台运行。

【讨论】:

    猜你喜欢
    • 2022-12-22
    • 1970-01-01
    • 2020-08-02
    • 1970-01-01
    • 2021-12-24
    • 2020-07-14
    • 2015-04-14
    • 1970-01-01
    • 2017-10-06
    相关资源
    最近更新 更多