Próbowałem szczęścia w badaniach, ale do tej pory nie było radości.SignalR z Self-Signed SSL i Self-Host
Chciałbym podłączyć klienta javascript SignalR do samodzielnego hostingu powiązania usługi Windows SignalR z samopodpisanym certyfikatem SSL.
Moja aplikacja działa całkiem dobrze przez http, ale klient wielokrotnie rozłącza się, gdy aplikacja Owin WebApplication zaczyna używać protokołu HTTPS.
Oto, co zrobiłem, aby skonfigurować SignalR z SSL.
- utworzono certyfikat z podpisem własnym, używając IIS
- Importowany certyfikat do zaufanych głównych urzędów certyfikacji w MMC (nie wiem, czy to pomogło)
Ran polecenia netsh związać SSL na porcie 8080
netsh http add sslcert ipport=0.0.0.0:8080 certhash=123456f6790a35f4b017b55d09e28f7ebe001bd appid={12345678-db90-4b66-8b01-88f7af2e36bf}
kod Dodane w własny gospodarzem przypadkach HubConnection aby dodać eksportowany SSL tak (chociaż to nie powinno mieć znaczenia, bo to klient, który nie może się połączyć):
if (File.Exists("MyCert.cer") && Settings.GetSetting(Settings.Setting.SrProtocol).Equals("https", StringComparison.InvariantCultureIgnoreCase)) connection.AddClientCertificate(X509Certificate.CreateFromCertFile("MyCert.cer"));
Zaczynając Owin webapplication użyciu HTTPS (powinno to doprowadzić do utworzenia wiązania w http.sys)
string registerUrl = string.Format("{0}://SOME.WHERE.COM:{1}", Service.Server.SrProtocol, Service.Server.SrPort); WebApp.Start<StartUp>(registerUrl);
W dokumentacji SignalR 2.0, to mówi:
Aby rozpocząć serwer WWW, wywołaj WebApplication.Start (punkt końcowy). Teraz powinieneś być w stanie nawigować do punktu końcowego/sygnalizatora/koncentratorów w przeglądarce.
Po przejściu na URL http://SOME.WHERE.COM:8080/signalr/hubs pomyślnie otrzymuję javascript, który steruje SignalR.
Po przejściu na URL https://SOME.WHERE.COM:8080/signalr/hubs nie udaje mi się i otrzymuję komunikat "Połączenie z serwerem zostało zresetowane" za pomocą FF.
Niektóre dodatkowe punkty Mam uważane:
NETSH SHOW wskazuje, że adres URL jest zarejestrowany
URL group ID: E300000240000022 State: Active Request queue name: Request queue is unnamed. Properties: Max bandwidth: inherited Max connections: inherited Timeouts: Timeout values inherited Number of registered URLs: 1 Registered URLs: HTTPS://SOME.WHERE.COM:8080/
NETSH SHOW wskazuje certyfikat SSL jest zobowiązany do 8080:
IP:port : 0.0.0.0:8080 Certificate Hash : 123456f6790a35f4b017b55d09e28f7ebe001bd Application ID : {12345678-db90-4b66-8b01-88f7af2e36bf} Certificate Store Name : (null) Verify Client Certificate Revocation : Enabled Verify Revocation Using Cached Client Certificate Only : Disabled Usage Check : Enabled Revocation Freshness Time : 0 URL Retrieval Timeout : 0 Ctl Identifier : (null) Ctl Store Name : (null) DS Mapper Usage : Disabled Negotiate Client Certificate : Disabled
Każda pomoc jest bardzo doceniana!
Oto link do wpisu na blogu z informacjami potrzebnymi do rejestracji i tworzenia certyfikatów SSL oraz konfiguracji SignalR: http://www.west-wind.com/weblog/posts/2013/Sep/23/Hosting- SignalR-under-SSLhttps –
@RickStrahl ten link jest zły ... – Jonesome
Działa dla mnie ... –