Unterstützung des SSL-Handshake mit SSLv2- und SSLv3-Protokollen, bei denen TLS 1.0–1.3 nicht implementiert werden kann
Alte Versionen von Java 6 oder älter und sehr frühe Versionen von Java 7 unterstützen möglicherweise keine starken Verschlüsselungsprotokolle wie TLS 1.0–1.3.Heutzutage erfordern die meisten Systeme die Verwendung stärkerer Verschlüsselungsprotokolle als SSLv2 oder SSLv3 und verhindern tatsächlich erfolgreiche SSL-Handshakes mit diesen alten Protokollen während der Aushandlung.
Obwohl es nicht ideal ist, diese älteren, weniger sicheren Protokolle zu verwenden, wäre es dennoch besser, eine gewisse Verschlüsselung zu implementieren, als überhaupt keine verschlüsselten Verbindungen zu verwenden.
Wir haben Szenarien beobachtet, in denen alte Java-Versionen, die von Anwendungen verwendet werden, erfolgreiche Handshakes vom Agenten nach Elasticsearch verhinderten. Standardmäßig unterstützt die Installation und Konfiguration von Elasticsearch mit Portal Dedicated nur TLS und nicht diese älteren Protokolle.
Wenn Sie ein Problem beobachten, bei dem die Portal Dedicated UI meldet, dass einige Ihrer Agenten keine Verbindung zu Elasticsearch herstellen können und Sie vermuten, dass die Anwendung eine dieser älteren Java-Versionen verwendet, überprüfen Sie bitte Ihr „mc.log“. Wenn diese Agenten versuchen, eine Verbindung herzustellen, werden möglicherweise Einträge angezeigt, die darauf hinweisen, dass das Protokoll, mit dem sie eine Verbindung herstellen möchten, nicht unterstützt wird. Außerdem wird das Protokoll angegeben, das der Agent verwenden möchte.
In einem solchen Szenario könnten Sie Elasticsearch neu konfigurieren, um Verbindungsversuche wie z. B. „SSLv3HELLO“ zuzulassen. Sie müssten zunächst das JDK-Verhalten ändern, indem Sie das identifizierte Protokoll, das der Agent zu verwenden versucht, zur Liste der zulässigen Protokolle in Ihrer Java-Sicherheitsrichtliniendatei hinzufügen. Zweitens müssten Sie in der Konfigurationsdatei readonlyrest.yml auch Unterstützung für diese Protokolle hinzufügen, um Verbindungen über diese Protokolle zu ermöglichen. Abschließend sollte ein Neustart von Elasticsearch die Situation beheben und dem Agenten eine erfolgreiche Verbindung ermöglichen.