Angenommen, ich möchte ein kommerzielles Produkt versenden, das zwei in Java geschriebene Komponenten enthält, die über ein REST-API in einem lokalen Netzwerk miteinander kommunizieren. Es könnte ein Musikmanager, eine Kontaktdatenbank, ein Kochbuch sein - wichtig ist, dass dies ein vernünftiges und extrem wahrscheinliches Szenario ist.Sichere HTTP-Kommunikation für Komponenten kommerzieller Produkte
Beachten Sie, dass es sich um zwei Komponenten handelt, die über ein lokales Netzwerk miteinander kommunizieren - nicht über die Kommunikation mit meinem Server.
Wie also mache ich die Kommunikation sicher?
Ich weiß, wenn ich einen HTTP-Server für die Welt einrichten, kann ich (sogar billig) ein SSL-Zertifikat kaufen. Ich habe es getan. Aber ich kann dem Benutzer nicht sagen, dass er ein Zertifikat kaufen soll - sie werden keine Ahnung haben, wovon ich rede, und ich würde niemals herausfinden, wie ich es installieren soll.
Also was mache ich? Jedem mein selbstsigniertes Zertifikat schicken und eine sehr schlechte Sache wie disable certificate validation in Java machen? Schrecklich, ich weiß. Aber zumindest werden die Informationen nicht im Klartext über die Linie gehen.
Wer hat bessere Lösungen?
Ihre verknüpfte Antwort stellt eine andere Lösung dar: Anstatt die Zertifikatsüberprüfung für selbstsignierte Zertifikate zu deaktivieren, "Exportieren Sie das Zertifikat (...) und importieren Sie es in Ihren JVM-Truststore" – mjn
möchten Sie den Inhalt der Anfragen vollständig ausblenden oder einfach sicherstellen, dass sie nicht von überall her kommen und akzeptiert werden? – cahen
Ich möchte die Kommunikation so gut wie möglich sichern, aber in erster Linie möchte ich nicht, dass die Kommunikation eindeutig über die Leitung geht (und ich meine nicht, dass ich sie nur verschleiern will). –