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.

Hallo

Ich glaube ich habe mich falsch ausgedrückt, denn der eventuelle Eindruck ycay komplett auf https umzustellen, war nicht mein Anliegen. Ich habe mehrere Onlineprojekte in den ich in Zukunft gerne die eigene Suchmaschine einbinden möchte.

Nur das Problem ist der http Link im iframe:

  <iframe name="target"
   src="http://xxx.xxx.xxx.xxx:8090/index.html?display=2&resource=local"
   width="100%"
   height="410"
   frameborder="0"
   scrolling="auto"
   id="target"> 
  </iframe>

Wenn ich den Code einbaue, werden meine Webseiten von allen Browser als unsicher eingestuft, das würde für unsere gesamte Community und den Verein eine Katastrophe darstellen. Wie mögen yacy, das steht außer Frage, aber wenn wir uns entscheiden müssten, würde yacy leider verlieren. Dazu kommt, das wir aus mehreren Gründen seit 17 Jahren mit Apache arbeiten müssen, und keinerlei Möglichkeit haben auf nginx umzustellen, sorry geht leider nicht.

Wäre es nicht irgendwie möglich diese Schnittstelle irgendwie doch SSL tauglich zu bekommen?

LG Patrick

Ja alles richtig, bei einem iframe muss der embedded Dienst https haben. Das ist aber bei jedem Dienst so, yacy oder was anderes. Man macht das modular. Https kommt von außen. Das geht auch beim Apache per reverse proxy und multidomain hosting, hab da aber keine aktuelle Erfahrung. In einem Projekt vor 12 Jahren hatte ich das aber schon mal gesehen. Das kann auch gar kein Aufwand sein.

Falls noch Interesse besteht, kann ich mal meine apache2 Reverseproxy-Konfiguration von https://search.webproject.link/ posten.
Funktioniert inzwischen ohne größere Probleme, mit HTTP/2 und TLS 1.3 Unterstützung.