In der HTTPS-Anforderung , Anfordern.IsSecureConnection return false
Habe ich eine asp.net -Anwendung, die in https (SSL). Dies funktioniert gut in meinem lokalen computer und Amazon AWS(Produktion).
Aber wenn ich die als host für diese Anwendung im Büro (zum testen) einige seltsame Dinge passiert.
-
Sehe ich die https im browser und dem Schloss-Zeichen.
-
Fiddler zeigt auch, dass die Ausgabe verschlüsselt ist, und zeigt den port 443.
-
Aber
HttpContext.Current.Request.IsSecureConnection
gibt false -
Sowie
HttpContext.Current.Request.Url.Scheme
gibt http.
Im Büro sind wir über Juniper SSG firewall und TMG 2010 (Forefront Threat Management Gateway 2010). So server erhalten, Anfrage durch Wacholder und TMG 2010. Vielen Dank im Voraus.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kosten zu reduzieren und ich vermute, dass das SSL-Zertifikat installiert ist, auf dem TMG Gateway und das gateway einfach umschreiben der Anfrage auf standard-HTTP-wenn die übergabe an den eigentlichen web-server. Also von der Zeit, die die Anforderung trifft IIS und Ihre web-Anwendung ist eine standard-plain-HTTP-Anfrage.
requiredSSL="true"
für die Authentifizierung ein cookie (das ist eine gute Praxis).Dieser stolperte meine bis nach der Bereitstellung von Amazon ' s Elastic Beanstalk-Umgebung. Ich konnte nicht sehen, alle Weg, um den Lastenausgleich zu ermöglichen, um die SSL-Anforderung direkt an den server. Stattdessen war es immer mit Abbruch der SSL auf dem load-balancer und Weitergabe plain-http an den server zurück.
Fand ich diese Dokumentation: Elastic Load Balancing-Konzepte - X-Forwarded-Header.
Im wesentlichen die load-balancer injiziert eine Reihe von zusätzlichen HTTP-Header in jeder Antrag vor der Weiterleitung an das back-end-server. Die meisten relevant ist
X-Forwarded-Proto
welche Spuren, die das Protokoll verwendet, um die Verbindung vom client-browser, um die load-balancer. Dies kann überprüft werden, etwa so:Wohl eine andere Art und Weise zu überprüfen ist, überprüfen Sie die port -
Hinweis: prüfen Sie, welcher port wird für sichere verbindungen ist es in der Regel 443