Einfache Proof-of-Concept-Stunnel-Konfiguration

1963
kaqqao

Ich versuche, stunnel für den Zugriff auf einen HTTPS-Webdienst über einen HTTP-Client einzurichten. Sollte ein Stück Kuchen sein, oder? Ich habe die folgende stunnel.conf:

client=yes verify=0 [test-https] accept = 1337 connect = www.google.com:443 

Wenn ich meinen Browser jedoch auf http://localhost:1337die 404-Fehlerseite von Google verweise :

404. That’s an error. The requested URL / was not found on this server

Ich habe viele andere Seiten ausprobiert und bekomme immer einen Fehler. Wordpress-Sites würden beispielsweise sagen:

Es wurde weder /etc/wordpress/config-localhost.php noch /etc/wordpress/config-localhost.php gefunden. Stellen Sie sicher, dass einer davon existiert, vom Webserver gelesen werden kann und das richtige Kennwort / den richtigen Benutzernamen enthält.

Es scheint, dass ich etwas grundlegend falsch mache, aber jedes einzelne Beispiel im Web zeigt genau dieselbe Konfiguration, die ich habe. Kann mir bitte jemand helfen?

Ich verwende stunnel 5.02-1 (x86_64) unter Arch Linux. Ich lege mein Stunnel-Protokoll auf Pastebin .

2

2 Antworten auf die Frage

3
NuTTyX

Problem ist mit dem localhostTeil. Die meisten Server antworten nicht, wenn Sie localhostihren Namen verwenden.

So lösen Sie das Problem: Zuerst führen Sie auf dem Server, den Sie erreichen möchten, ein nslookup aus, und wählen Sie eine der mehreren IP- 12.34.56.78Adressen aus ( dh, es handelt sich nicht um eine echte Google-IP-Adresse, sondern nur um eine Konfiguration). Konfigurieren Sie Ihre stunnel.conf so, dass sie auf diese IP-Adresse verweist:

connect = 12.34.56.78:443 

Setzen Sie diese auf Ihrem Client /etc/hosts(ich gehe davon aus, dass es sich um dieselbe Maschine wie der Stunnel handelt, wenn nicht, verwenden Sie die entsprechende IP-Adresse):

127.0.0.1 www.google.com 

Verwenden Sie die URL http://www.google.com:1337

HINWEIS: Wenn Sie immer noch Fehler erhalten, ändern Sie den acceptWert von 1337 auf 443.

Ok, der Host wird tatsächlich erhalten. Komisch, dass keine einzige Quelle etwas davon erwähnte. Das zu tun, was Sie gesagt haben, hat tatsächlich geholfen, und ich konnte endlich zu einer https-Site gelangen, also danke Ihnen (!!) und ich akzeptiere die Antwort. Noch ist mein ursprünglicher Zweck noch nicht erfüllt. Das Problem ist, ich habe nur die IP des Servers, auf dem der Dienst läuft ... also habe ich nichts in meine hosts-Datei. Gibt es eine Möglichkeit, in dieser Situation wegzukommen? kaqqao vor 9 Jahren 0
Übrigens, jetzt wo ich wusste, wonach ich suchen sollte, fand ich weitere Erwähnungen davon, zB http://comments.gmane.org/gmane.network.stunnel.user/5696 kaqqao vor 9 Jahren 0
"Https: //"`Arbeit von Ihrem Server? Wenn ja, wird es wahrscheinlich auch funktionieren, wenn Sie localhost verwenden. Sie können jedoch den Namen des Servers erraten, indem Sie `openssl s_client -connect ausführen: 443` und suchen Sie nach der Zeile, die mit "subject" beginnt, und suchen Sie nach dem Namen nach "CN =" (dies ist das Zertifikat des Fremdservers). Es ist sehr ungewöhnlich, dass für eine Site ein Zertifikat für eine IP-Adresse ausgestellt wird, sodass Sie meinen Vorschlag trotzdem versuchen könnten. NuTTyX vor 9 Jahren 0
Ja, der Gastgeber wird erhalten. Einige Hosts setzen voraus, dass Sie die richtige IP-Adresse und den richtigen Port im "Host:" - HTTP-Anforderungsheader haben, der eine Weiterleitung sendet, wenn Sie dies nicht tun. Wenn Sie dieses Problem haben, müssen Sie sich mit den Firewall-Regeln beschäftigen (z. B. iptables) ), um das zum Laufen zu bringen, oder den lokalen Proxy einer Art einrichten. Es ist möglicherweise einfacher für einen Client, der HTTPS unterstützt. Jasen vor 9 Jahren 0
0
MariusMatutiae

Zwei Probleme:

  1. Generieren Sie Ihr eigenes selbstsigniertes Zertifikat mit diesen Befehlen im Verzeichnis / etc / stunnel:

    openssl genrsa 1024> stunnel.key openssl req -new -key stunnel.key -x509 -days 1000 -out stunnel.crt cat stunnel.crt stunnel.key> stunnel.pem

und vergewissern Sie sich, dass die beiden Zeilen in der Datei /etc/stunnel/stunnel.conf enthalten sind

 ;cert = /etc/stunnel/mail.pem ;key = /etc/stunnel/mail.pem 

werden wie folgt geändert:

 cert = /etc/stunnel/stunnel.pem key = /etc/stunnel/stunnel.pem 
  1. Der Aufruf in Ihrem Browser, Sie [Test-https] Etikett muss nicht sein, http://localhost:1337sondern es muss seintest-https://localhost:1337
Alle Clients, mit denen ich aufwarten konnte, konnten das nicht vorhandene Protokoll erwartungsgemäß nicht analysieren. Ich habe versucht, das Etikett zu einem offensichtlichen "http" zu ändern, ohne Erfolg. Ich habe zwar Verweise auf das Aufrufen von Stunnel auf diese Weise gesehen, ich denke jedoch, dass es nicht für die letzten Versionen gilt. Außerdem verwende ich Stunnel nur im Client-Modus und habe die SSL-Überprüfung deaktiviert, sodass das Zertifikat und der Schlüssel keine Rolle spielen sollten, soweit ich das verstehe. kaqqao vor 9 Jahren 0