Https für yacy aber wie?

Hallo

Gibt es eine Art Anleitung, wie ich yacy https tauglich bekomme?

LG Patrick

Dazu gibts viele Wege, aber ich mache das mit YaCy analog zu allen anderen Diensten die https benötigen. Hierzu musst du meisten das Thema multi-domain-hosting gleichzeitig mitbetrachten, d.h. die Frage lösen wie du mehrere Services auf dem gleichen Server hostest.

Die multi-domain “Brücke” wird dabei meistens mit einem reverse Proxy gelöst, z.B. nginx. Dieser weist deinem Service, hier YaCy, eine Domäne zu und leitet den Service Port 8090 auf 80 zu dieser Domäne um.

Der zweite Schritt ist, https unter der gewählten Domäne ebenfalls anzubieten. Dazu brauchst du ein ssl-Zertifikat, welches früher sehr schwer zu bekommen war, aber jetzt mit letsencrypt sehr einfach zu bekommen ist. Letsencrypt macht dann auch bei einer bestehenden nginx Installation die Konfiguration selbst.

Hört sich vielleicht viel komplizierter an als es ist. Hier ist z.B. eine Anleitung: How to install Let's Encrypt on Nginx - Tutorial - UpCloud
Die ist natürlich nicht YaCy-spezifisch, hier muss du natürlich erst die nginx-Konfiguration für den YaCy Service bauen.

Vielleicht mache ich mal dazu ein Tutorial…

Hallo

Jetzt verstehe ich nur noch Bahnhof.

Ich suche seit Tagen dieses keytool und nginx kenne ich aber habe ich auf meinen Server nicht installiert. Die Keyhelp Software macht bei mir alles was das Letsencrypt angeht.

LG Patrick

Es gibt sicherlich ein Haufen Werkzeuge, das oben ist das was ich kenne und was einen korrekten verifizierten und gültigen (nicht selbst-signierten) Schlüssel für die ssl-Verbindung erzeugt.

Wir hatten mal einen selbstsignierten ssl-Port in YaCy, den habe ich aber raus gemacht weil seit Jahren die Browser wesentlich empfindlichere Sicherheitseinstellungen haben und das meistens abweisen.

Seit letztem Jahr gibts auch neue Regeln, nach denen ein signierter Schlüssel für ssl alle 6 Monate erneuert werden muss. Das ganze muss also automatisch einen renew machen, dazu gibts für letsencrypt einen einfachen cronjob. Ich wollte es aber nicht allzu kompliziert machen…

Ich wäre an einem Beispiel Setup für nginx sehr interessiert. Ich habe bereits einen solchen Reverse Proxy im Einsatz, frage mich aber, ob es spezifische Eigenheiten zu berücksichtigen gibt.

Kommuniziert Yacy mit den anderen Nodes über http? Wird dieser Datenverkehr nicht verschlüsselt?

Ja, YaCy kommuniziert nur mit http. Wir haben das damals, als YaCy designed wurde nicht in Betracht gezogen weil die einzige Alternative self-signed https gewesen wäre. Man muss sich nochmal vor Augen halten was https denn eigentlich macht:

  • den Server eindeutig identifizieren - und zwar gegenüber eine Domäne die im Schlüssel abgelegt ist
  • den Inhalt verschlüsseln, also zwischen Sender und Empfänger geheim halten.

Beide Ziele sind im Kontext von YaCy irrelevant bzw. nicht Ziel: wir wollen hier anonyme Peers die ggf. immer wieder ihre Adresse ändern (z.B. tun das private Anschlüsse alle 24h); ausserdem werden ausschliesslich öffentliche Daten ausgetauscht und dann auch zum Abruf wiedergegeben. Daher sehe ich immer noch keine Relevanz von http.

Wenn du aber einen YaCy Peer per https anbieten willst, dient das dem Zweck dass du Nutzer im Netz haben die deine Identität als Hoster des Peers festellen wollen - bzw die Browser wollen das jetzt. Das hat aber nichts damit zu tun wie gut YaCy mit/ohne https funktioniert.