gpt4 book ai didi

https - 调试自托管 https 连接问题的任何好方法?

转载 作者:行者123 更新时间:2023-12-01 13:16:56 25 4
gpt4 key购买 nike

我正在使用 Windows 10 机器上的自托管服务堆栈 Web 服务,我正在尝试在其上启用 https。到目前为止我所做的是:

1)我使用我们公司的证书服务器创建了一个通配符证书,并使用私钥将其导出。

2)我已经在我的开发机器的“LocalMachine/Personal”证书存储上安装了证书。

3)我从命令行运行了以下命令:

netsh http add sslcert ipport=0.0.0.0:{DefaultConfig.DefaultSslPort} certhash={sha1} appid={{{appId}}}
netsh http add urlacl url=https://+:{DefaultConfig.DefaultSslPort}/ user=everyone

4)我将以下内容添加到我的 Program.cs
var listeningOn = $"http://*:{DefaultConfig.DefaultPort}/";
appHost.Start(new[]{ listeningOn, $"https://*:{DefaultConfig.DefaultSslPort}/" });

现在,当我启动项目时,http 绑定(bind)没有问题,web 服务加载并按预期工作。但是,当我尝试 https 绑定(bind)时,浏览器显示已建立连接并且证书有效(出现绿色锁并且网络流量显示连接成功)但是服务器响应:
HTTP Error 503. The service is unavailable.

显然它是可用的(正如 Http 绑定(bind)所证明的那样),但是 windows 和 servicestack 之间存在一些脱节,我真的不知道在哪里寻找答案。我尝试了一堆搜索短语,但它们似乎都告诉我检查/做我已经检查/完成的事情,或者结果特定于特定的应用程序/框架/操作系统并且没有帮助。

最佳答案

好的,所以与那里的许多帖子相反,您不应该使用以下方式保留网址:

netsh http add urlacl url=https://+:{DefaultConfig.DefaultSslPort}/ user=everyone

使用 ServiceStack 自托管时。我不知道为什么(如果您知道原因,请随时发表评论),但这会使 Windows 无法将 https 请求传递到您的自托管站点。我通过下载 ServiceStack 源代码检查了这一点,并在连接回调上放置了一个断点,该回调是任何传入连接的入口点。断点永远不会被命中,因此请求永远不会到达 Servicestack。

删除 URL 保留后,一切正常。

关于https - 调试自托管 https 连接问题的任何好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54031762/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com