代码之家  ›  专栏  ›  技术社区  ›  Velocedge

SignalR应用程序启动,在http上运行,但不在https上运行:连接意外关闭

  •  0
  • Velocedge  · 技术社区  · 7 年前

    我在Windows服务中有一个自托管的SignalR应用程序,它是用VS2015 FW 4.6和SignalR 2.3.0构建的。使用端口6286(https)和6287(http)以及用于IP的“*”已经运行了两年多。我想将这些端口分别切换到80和443,并向443应用通配符证书。由于有网站在IP 192.168.100.7上使用该证书,我向我的服务器添加了另一个IP地址(192.168.100.3),并应用了以下证书:

    netsh http add sslcert ipport=192.168.100.3:443 appid={12345678-db90-4b66-8b01-88f7af2e36bf} certhash=xxxxxxxxxxxxxxxxxxxxxxxxx
    

    我可以通过以下方式验证成功:

    netsh http show sslcert ipport=192.168.100.3:443
    

    因此,我用以下内容启动网络应用程序:

    SignalR = WebApp.Start("http://192.168.100.3:80/");
    SignalRSSL = WebApp.Start("https://192.168.100.3:443/");
    

    他们似乎开始很好,没有错误,如果我使用 http://192.168.100.3/signalr/hubs 它很好用。然而 https://192.168.100.3:443/signalr/hubs 给出“意外关闭的连接”错误。

    我做错了什么,还有什么需要设置的吗?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Velocedge    7 年前

    我的错误。。。我用内部IP和相应的外部IP来测试这个。我意识到,通配符证书与IP无关,它与域有关!所以,我用通配符的域名为IP创建了一个A记录,它成功了。

    然而,我现在有一个不同的问题,它试图与web服务器的域而不是信号器域协商来发送消息!

    https://webserverdomain/signalr/negotiate?clientProtocol=1.5....  
    

    我不知道它在哪里找到了web服务器的名称,但它的不同程度足以让它成为另一篇文章的主题。