Frage

Ich verwende diesen Code, eine Anfrage an einen bestimmten URL zu machen:

private static string GetWebRequestContent(string url)
{
  string sid = String.Empty;

  HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url);
  req.KeepAlive = false;

  using (HttpWebResponse res = (HttpWebResponse)req.GetResponse())
  {
    using (StreamReader sr = new StreamReader(res.GetResponseStream()))
    {
      sid = sr.ReadToEnd().Trim();
    }
  }

  return sid;
}

Ich verwende es die Klebrigkeit eines Work Load Balancer zu testen, mit 3 Servern dahinter. Sie alle haben eine statische HTM-Datei namens sid.htm, wo der Server-ID des Servers geschrieben wird.

Für URLs mit HTTP das funktioniert gut. Aber mit HTTPS funktioniert es nicht. Ich erhalte diese Ausnahme:

  

Die Anforderung wurde abgebrochen. Kann nicht sicheren SSL / TLS-Kanal erstellen

Im Moment habe ich nur zwei Server hinter der WLB und eine auf seinem eigenen mit einer öffentlichen IP hinter einer Firewall. HTTPS-Anfragen funktionieren gut, wenn ich den Stand-alone-Server getroffen -. Aber wenn ich die WLB treffe ich den obigen Fehler

Eine Sache: Um zwischen Schlagen der einzelnen Server zu wechseln, und die WLB ich meine hosts-Datei verwenden. Die DNS-Einträge für meine Domain verweist auf die einzelnen Server im Moment. Also habe ich einen Datensatz in meiner hosts-Datei, die WLB zu treffen. Dies sollte keine Probleme verursachen ...

Meine Frage : Welche SSL-Anmeldeinformationen / Zertifikate hat die HttpWebRequest verwenden? Wenn es 40-Bit-DEM oder 56-Bit-DIE verwendet, das ist der Grund, weil das in den WLB deaktiviert ist. Aber diese Zertifikate nicht in Browsern seit IE3 und Netscape 1 und 2 verwendet.

War es hilfreich?

Lösung

Es funktioniert perfekt in meinem Browser.

fand ich die Lösung 1 Minute nachdem ich die Frage gestellt:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;

Und das bedeutet, die HttpWebRequest wurde mit TLS 1.0. - Ich weiß es nicht, aber ich nehme an, dass 40-Bit-DEM oder 56-Bit-DIE, das in den WLB deaktiviert

Andere Tipps

Es ist smothing Sie könnten mit dem Load Balancer zu betrachten. Diejenigen, verwenden wir den sicheren HTTPS-Verkehr zu den Servern dahinter auf eine unsicheren HTTP-Verbindung nach vorn. Die Verbindung zwischen dem Load-Balancer und dem Browser noch sicher ist, aber es gibt keine Notwendigkeit für den über den Kopf des sicheren Protokolls zwischen der Balancer und den Web-Servern.

Wir wollten eine sichere Verbindung auf unseren Web-Servern erkennen, aber zunächst sahen nie eine HTTPS-Verbindung. Das ist, wenn wir den Verkehr realisiert hinter der Balancer alle unsicher war. Sinnvoll, wenn wir kannten.

Was wir jetzt tun ist uns auf alle sicheren Datenverkehr in den Ausgleichs kommen (Port 443) auf Port 81 (HTTP altenative) und weitergeleitet dann alle normalen HTTP-Datenverkehr (Ports 80 und 81) auf Port 80. Dann können wir den Anschluss überprüfen auf dem Web-Server und wissen 80 unsicher und 81 ist sicher Verkehr zwischen Browser und Balancer trotz der Tatsache, sein alle HTTP auf dem Web-Server.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top