【发布时间】:2023-02-01 20:34:47
【问题描述】:
所以我们遇到了这个非常奇怪的问题,我们想要托管我们的 API 的 URL。
我们目前在 Windows 上使用 ASP.NET Core (.NET7) 和 Kestrel 进行自托管。我们有证书,通常一切都按预期工作。
我们通常使用以下网址:
“http://abc.ourdomain.com” “https://abc.ourdomain.com”
这很好用。
如果我们切换到只使用一个:
“https://abc.ourdomain.com”
它也有效。
但是,如果我们只切换到多个 https URL:
“https://abc.ourdomain.com” “https://def.ourdomain.com”
它们都不起作用!
除非我们还为它们中的任何一个添加 http:
“http://abc.ourdomain.com” “https://abc.ourdomain.com” “https://def.ourdomain.com”
然后他们都工作了!
我们使用的 URL 是通过以下方式设置的:
app.Urls.Add(url)
我们使用:
builder.WebHost.ConfigureKestrel(serverOptions =>
{
serverOptions.ConfigureEndpointDefaults(listenOptions =>
{
listenOptions.UseHttps(/*cert info*/);
});
});
配置红隼。
我们已经尝试打开和关闭 https 重定向。没有不同。
所以基本上,总而言之,我们似乎需要至少一个 http 端点或只需要一个 https 端点。这没有意义。
有人可以解释发生了什么吗?
【问题讨论】:
-
从 DNS 名称到 IP 地址的映射不会发生在您的应用程序中,它应该发生在您的域名注册商中。 UseUrls 应使用 http://*:80 或 https://*:443。
标签: asp.net-core https kestrel