Приложение SignalR запускается, работает по http, но не по https: неожиданно закрытое соединение - PullRequest
0 голосов
/ 26 ноября 2018

У меня есть собственное приложение SignalR в Windows Service, созданное с VS2015 FW 4.6, SignalR 2.3.0.Это работает нормально в течение более 2 лет, используя порты 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

Поэтому я запускаю WebApps со следующими данными:

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 выдает ошибку «Неожиданно закрытое соединение».

Что я сделал не так, есть ли что-то еще для https?

1 Ответ

0 голосов
/ 26 ноября 2018

Моя ошибка ... Я использовал внутренние IP-адреса и соответствующие внешние IP-адреса для проверки этого.Я понял, что подстановочный сертификат не привязан к IP, он привязан к домену!Итак, я создал запись A для IP с доменом подстановочного знака, и это сработало.

Однако у меня теперь другая проблема в том, что он пытается договориться с доменом веб-сервера, а не с доменом signalRчтобы отправить сообщение!

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

Я не знаю, где он выбирает имя веб-сервера, но он настолько отличается, что, вероятно, это тема для другого сообщения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...