带有通配符证书的Kestrel HTTPS端点

问题描述

使用以下appsettings.json文件为Kestrel ASP.NET Web API主机加载通配符证书时,我们面临一个问题:

"Kestrel": {
  "EndPoints": {
    "HttpsInlineCertStore": {
      "Url": "https://test.my.host.com:443","Certificate": {
        "Subject": "*.host.com","Store": "My","Location": "LocalMachine","AllowInvalid": "true"
      }
    }
  }
}

在Chrome中,我们收到NET::ERR_CERT_COMMON_NAME_INVALID错误,在Firefox SSL_ERROR_BAD_CERT_DOMAIN中。

自然,URL中的域与通配符证书不匹配,但是我们不确定如何解决此问题。

enter image description here

解决方法

事实证明,该问题与域级别以及通配符*的位置有关。

*.host.com仅匹配单个级别的子域,而不匹配“子子域”。

因此testmy.host.com有效,但test.my.host.com无效。为了使后者起作用,需要另一个通配符证书*.my.host.com

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...