Lokaler HTTP-zu-HTTPS-Proxy, der die HTTPS-Verbindung über einen Proxy herstellen kann

Lokaler HTTP-zu-HTTPS-Proxy, der die HTTPS-Verbindung über einen Proxy herstellen kann

Das ist der Deal:

  • Unsere Client-Software kann nur über das http-Protokoll eine Verbindung herstellen, sie unterstützt kein https.
  • Da die Sicherheitsanforderungen jedoch eine End-to-End-Sicherheit erfordern, müssen wir bei der Kommunikation mit dem Server https verwenden.
  • Jetzt konnte ich dies in einer Testumgebung durchführen, indem ichTunnelmit folgender Konfiguration:

stunnel.conf-Datei:

[mylocalproxy]
client = yes
accept = 127.0.0.1:3000
connect = the.real.server:443
  • Mit der obigen Stunnel-Konfiguration kann ich meinen Testclient so konfigurieren, dass er die Endpunktadresse verwendet, http://localhost:3000/endpoint/url/und alles funktioniert einwandfrei.
  • In der Produktionsumgebung hat die Clientseite jedoch keinen direkten Netzwerkzugriff auf den realen Server. Der HTTP/S-Verkehr von der Clientseite muss über einen Proxyserver laufen.
  • Meine Fragen:
    • Ist es möglich, Stunnel für die Verbindung über einen Proxyserver zu konfigurieren?
    • Wenn dies mit Stunnel nicht möglich ist, gibt es eine andere Möglichkeit, dies zu erreichen?

Antwort1

Es scheint unterstützt zu werden, aber diemanpage, aber die Sprache ist so geschrieben, dass Sie die Protokolle mehr oder weniger kennen müssen, um sie zu verstehen:

UnterProtokollWir können Folgendes sehen:

Verbinden. Basierend auf RFC 2817 – Upgrade auf TLS innerhalb von HTTP/1.1, Abschnitt 5.2 – Anfordern eines Tunnels mit CONNECT. Dieses Protokoll wird nur im Client-Modus unterstützt.

Weiter unten finden wir folgendes:

protocolHost = ADRESSE Hostadresse für die Protokollverhandlungen Für die „Connect“-Protokollverhandlungen gibt protocolHost HOST:PORT des endgültigen TLS-Servers an, mit dem der Proxy eine Verbindung herstellen soll. Der direkt über Stunnel verbundene Proxyserver muss mit der Option „Connect“ angegeben werden.

So können wir das zusammensetzen:

[mylocalproxy]
client = yes
accept = 127.0.0.1:3000
protocol = connect
connect = proxy.example.org:3128
protocolHost = the.real.server:443

Getestet habe ich es nicht, aber dem Wortlaut der Dokumentation zufolge sollte es wie gewünscht funktionieren.

Antwort2

Sie können dies tun mit:

[SSL Proxy]
accept = 8443
connect = 8084
cert = certificate.pem
key = private_key.pem

Sie benötigen ein Zertifikat einer Zertifizierungsstelle, um HTTPS-Clientverbindungen zuzulassen.

verwandte Informationen