SignalR mit einem Selbst-Signierten SSL und Self-Host

Versuchte mein Glück bei der Forschung, aber bisher keine Freude.

Möchte ich verbinden eine SignalR-javascript-client, um eine self-hosted-SignalR-Windows-Dienst Bindung an ein selbst-signiertes SSL-Zertifikat.

Meiner Anwendung funktioniert das ganz gut über http, der client aber wiederholt trennt, wenn die Owin WebApplication beginnt mit https.

Hier ist was ich getan habe, zu konfigurieren, SignalR mit SSL.

  1. Erstellt ein Selbst-Signiertes Zertifikat mithilfe der IIS -
  2. Importiert das Zertifikat in den Vertrauenswürdigen Stammzertifizierungsstellen in der mmc (nicht sicher, ob das geholfen)
  3. Lief NETSH-Befehl zu binden SSL auf port 8080

    netsh http add sslcert ipport=0.0.0.0:8080 certhash=123456f6790a35f4b017b55d09e28f7ebe001bd appid={12345678-db90-4b66-8b01-88f7af2e36bf}
    
  4. Code Hinzugefügt selbst gehosteten HubConnection Instanzen hinzufügen exportiert SSL wie folgt aus (allerdings soll dies keine Rolle, weil es den client, kann keine Verbindung):

    if (File.Exists("MyCert.cer") 
        && Settings.GetSetting(Settings.Setting.SrProtocol).Equals("https", StringComparison.InvariantCultureIgnoreCase))
            connection.AddClientCertificate(X509Certificate.CreateFromCertFile("MyCert.cer"));
    
  5. Ab Owin WebApplication https verwenden (dies sollte die Bindung in http.sys)

    string registerUrl = string.Format("{0}://SOME.WHERE.COM:{1}", Service.Server.SrProtocol, Service.Server.SrPort);
    WebApp.Start<StartUp>(registerUrl);
    

In SignalR 2.0-Dokumentation heißt es:

Starten Sie den web-server rufen Sie WebApplication.Start(Endpunkt). Sie sollten nun in der Lage sein zu navigieren, endpoint - /signalr/hubs in Ihrem browser.

Wenn ich navigieren Sie zu der URL http://SOME.WHERE.COM:8080/signalr/hubs ich bin erfolgreich empfangen die javascript-Laufwerke, SignalR.

Wenn ich navigieren Sie zu der URL https://SOME.WHERE.COM:8080/signalr/hubs ich bin erfolglos und ich bekomme "Die Verbindung zum server wurde zurückgesetzt" mit FF.

Einige zusätzliche Punkte, die ich betrachtet habe:

  • NETSH SHOW zeigt die url registriert ist

    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 zeigt das SSL-Zertifikat ist gebunden 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
    

Jede Hilfe wird sehr geschätzt!

  • Hier ist ein link zum blog-post mit, was nötig ist, um sich zu registrieren und erstellen Sie SSL-Zertifikate und wie Sie eingerichtet für SignalR: west-wind.com/weblog/posts/2013/Sep/23/...
  • link ist schlecht...
  • Für mich funktioniert...
InformationsquelleAutor ISZ | 2013-08-09
Schreibe einen Kommentar