调试自托管 https 连接问题的任何好方法?
Any good way to debug Self Hosted https connection issues?
我正在 Windows 10 机器上使用自托管 servicestack 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 绑定工作正常,web 服务加载并按预期工作。但是,当我尝试 https 绑定时,浏览器显示已建立连接并且证书有效(出现绿色锁并且网络流量显示连接成功)但是服务器响应:
HTTP Error 503. The service is unavailable.
显然它是可用的(正如 Http 绑定所证明的那样)但是 windows 和 servicestack 之间存在一些脱节,我真的不知道到哪里寻找这方面的答案。我尝试了一堆搜索短语,但它们似乎都告诉我 check/do 我已经 checked/done 或结果特定于特定 application/framework/OS 并且没有帮助。
好的,所以与那里的许多 post 相反,您应该 不 保留 url 使用:
netsh http add urlacl url=https://+:{DefaultConfig.DefaultSslPort}/ user=everyone
使用 ServiceStack 自托管时。我不知道为什么(如果你知道为什么,请随时 post 发表评论)但这使得 windows 无法将 https 请求传递到你的自托管站点。我通过下载 ServiceStack 源代码检查了这一点,并在连接回调上放置了一个断点,该回调是任何传入连接的入口点。永远不会命中断点,因此请求永远不会到达 Servicestack。
删除 URL 预留后,一切正常。
我正在 Windows 10 机器上使用自托管 servicestack 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 绑定工作正常,web 服务加载并按预期工作。但是,当我尝试 https 绑定时,浏览器显示已建立连接并且证书有效(出现绿色锁并且网络流量显示连接成功)但是服务器响应:
HTTP Error 503. The service is unavailable.
显然它是可用的(正如 Http 绑定所证明的那样)但是 windows 和 servicestack 之间存在一些脱节,我真的不知道到哪里寻找这方面的答案。我尝试了一堆搜索短语,但它们似乎都告诉我 check/do 我已经 checked/done 或结果特定于特定 application/framework/OS 并且没有帮助。
好的,所以与那里的许多 post 相反,您应该 不 保留 url 使用:
netsh http add urlacl url=https://+:{DefaultConfig.DefaultSslPort}/ user=everyone
使用 ServiceStack 自托管时。我不知道为什么(如果你知道为什么,请随时 post 发表评论)但这使得 windows 无法将 https 请求传递到你的自托管站点。我通过下载 ServiceStack 源代码检查了这一点,并在连接回调上放置了一个断点,该回调是任何传入连接的入口点。永远不会命中断点,因此请求永远不会到达 Servicestack。
删除 URL 预留后,一切正常。