Kann ein proxy-server-cache-SSL-Bekommt?Wenn nicht, würde response-body Verschlüsselung ausreichen?

StackOverflow https://stackoverflow.com/questions/14656

Frage

Kann ein (||alle) proxy-server-cache-Inhalte, die von einem client angefordert, die über https?Wie der proxy-server kann nicht sehen, die Abfragezeichenfolge oder den http-Header, ich Schätze, Sie können nicht.

Ich überlege mir eine desktop-Anwendung ausführen, indem eine Anzahl von Menschen, die hinter Ihrer Firmen-proxy.Diese Applikation kann Zugriff auf Dienste über das internet, und ich möchte, um die Vorteile der in-built internet-caching-Infrastruktur für 'liest'.Wenn die caching-proxy-Server kann keine SSL-cache gelieferte Inhalte, würde einfach verschlüsseln den Inhalt einer Antwort eine sinnvolle option sein?

Ich bin am überlegen alle Anfragen BEKOMMEN, die wir wollen, cachable angefordert werden über http mit dem Körper werden verschlüsselt mittels asymmetrischer Verschlüsselung, bei dem jeder client hat einen Schlüssel für die Entschlüsselung.Jedes mal, wenn wir möchten, führen Sie einen BEKOMMEN, ist nicht cachable, oder eine POST-operation, es wird durchgeführt werden über SSL.

War es hilfreich?

Lösung 2

Nein, es ist nicht möglich, um den cache https-direkt.Die gesamte Kommunikation zwischen dem client und dem server ist verschlüsselt.Ein proxy befindet sich zwischen dem server und dem client, um den cache, müssen Sie in der Lage sein, es zu Lesen, ie entschlüsseln Sie die Verschlüsselung.

Sie können etwas tun, um zwischenzuspeichern.Sie im Grunde tun, die von SSL auf dem Proxyserver, abfangen von SSL gesendet an den client.Grundsätzlich werden die Daten verschlüsselt zwischen client und proxy, ist es entschlüsselt, gelesen und zwischengespeichert, und die Daten werden verschlüsselt und auf dem server.Die Antwort vom server ist ebenfalls descrypted, Lesen und verschlüsselt.Ich bin mir nicht sicher, wie Sie dies tun auf der großen proxy-software (wie squid), aber es ist möglich.

Das einzige problem bei diesem Ansatz ist, dass der proxy verwenden müssen, die ein selbst signiertes Zertifikat zu verschlüsseln, die Sie an den client.Der client wird in der Lage sein zu sagen, dass ein proxy in der Mitte hat die Daten Lesen, da das Zertifikat nicht von der original-Website.

Andere Tipps

Der Kommentar von Rory, die den proxy verwenden würde, ein selbst signiertes Zertifikat, wenn nicht stricltly wahr.

Der proxy implementiert werden könnte, um ein neues cert für jede neue SSL-host es wird gebeten, zu deal mit und Unterschreiben Sie es mit einem gemeinsamen root-cert.Im OP ist das Szenario einer corportate Umgebung die gemeinsame Unterzeichnung cert kann relativ einfach installiert werden, der als Vertrauenswürdige ZERTIFIZIERUNGSSTELLE auf dem client-Rechner und Sie werden gerne akzeptieren diese "gefälschten" SSL-certs für den Verkehr wird umgeleitet, da es keine Hostnamen.

In der Tat ist dies genau, wie software, wie die Charles Web Debugging Proxy erlauben für Inspektion von SSL-Datenverkehr ohne dass die security-Fehler im browser, etc.

Ich denke, Sie sollten einfach verwenden, SSL und verlassen sich auf eine HTTP-client-Bibliothek, die das tut-caching (Ex:WinInet auf windows).Es ist schwer vorstellbar, dass die Vorteile von enterprise-wide caching-Wert ist, den Schmerz zu schreiben, einen benutzerdefinierten Sicherheits-Verschlüsselung oder Zertifikat Spaß auf dem proxy.Schlimmer ist, auf der Verschlüsselung Schema, das Sie erwähnen, tun asynmetric Chiffren auf die Einheit Körper klingt wie ein riesiges perf Treffer auf der server-Seite der Anwendung;es gibt einen Grund, dass SSL verwendet symmetrischen Chiffren für die eigentlichen Nutzdaten der Verbindung.

Die jeweilige Applikation ist nicht-browser-app einen desktop-app-abrufen von Daten über das internet.Was passieren wird ist, dass alle Instanzen der app ziehen und dasselbe Stück in etwa aus der gleichen Zeit.Diese Daten müssen gesichert werden, aber ich bin in der Hoffnung zu erhöhen, perf, indem er einige Instanzen der app erhalten Sie eine zwischengespeicherte version aus dem Unternehmens-proxy-server.

Die Daten, die Stücke sind klein, aber Sie können Häufig angefordert werden.Im wesentlichen alle app-Instanzen gehen zu Anfrage die gleichen Daten wie jeder andere zur gleichen Zeit.

Die Daten/Nachrichtentext auf der server-Seite werden pre-verschlüsselt und zwischengespeichert, in einer verteilten in-memory-hash-Tabelle.Die Verschlüsselung nicht durchgeführt werden, auf einer pro-Anfrage-basis.

Ich bin ebenfalls untersucht über eine message-bus, wie NServiceBus statt.

Check-out www.bluecoat.com ist eine kommerziell-proxy, der tatsächlich tun KÖNNEN https-interception, um zu blockieren, Websites, Inhalte einzuschränken, überprüfen Sie es auf Viren und cache-Inhalt (Bekommt)

Ich denke, Sie sollten einfach verwenden, SSL und verlassen sich auf eine HTTP-client-Bibliothek, die das tut-caching (Ex:WinInet auf windows).Es ist schwer vorstellbar, dass die Vorteile von enterprise-wide caching-Wert ist, den Schmerz zu schreiben, einen benutzerdefinierten Sicherheits-Verschlüsselung oder Zertifikat Spaß auf dem proxy.Schlimmer ist, auf der Verschlüsselungsverfahren, die Sie erwähnen, tun asymmetrischen Chiffren auf die Einheit Körper klingt wie ein riesiges perf Treffer auf der server-Seite der Anwendung;es gibt einen Grund, dass SSL verwendet symmetrischen Chiffren für die eigentlichen Nutzdaten der Verbindung.

Wie über die Einrichtung von server-cache auf dem Anwendungsserver hinter der Komponente, https verschlüsselt Antworten?Dies kann nützlich sein, wenn Sie eine reverse-proxy-setup.

Ich denke an so etwas wie dieses:

application server <---> Squid or Varnish (cache) <---> Apache (performs SSL encryption)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top