English FlagThere is also an English version available of this website.
CURL in der Linux Kommandozeile - Tipps und Empfehlungen zu CURL

Möchte man sich von der Linux-Kommandozeile aus mit Elasticsearch verbinden, so macht man das beispielsweise mit CURL. Der Standardport von Elasticsearch ist hierbei Port 9200:

curl http://localhost:9200

Man kann bzw. sollte jedoch Elasticsearch mit TLS und einem Zertifikat absichern. So geschieht es beispielsweise auch, wenn man den offiziellen elastic-stack auf Basis von Docker laufen hat. Auch in diesem Fall werden von Elastic selbstsignierte Zertifikate verwendet. Loggt man sich in den Elasticsearch-Container per

docker exec -it elasticsearch /bin/bash

ein, kommt man mit einem einfach CURL-Befehl wegen der TLS-Absicherung nicht weiter. Der Fehler

curl: (52) Empty reply from server

ist dann auch schnell nachvollziehbar: Unser Verbindungsversuch erfolgte mittels http und nicht https (denn dieser Docker-Container nutzt ja gesicherte TLS-Verbindungen). Ändern wir nun aber den Verbindungsversuch auf https kommt es zum nächsten Fehler und die Anmeldung an Elasticsearch schlägt fehl:

curl: (60) Peer's Certificate issuer is not recognized.

Das Problem ist ja auch ganz klar: wir versuchen eine gesicherte Verbindung herzustellen, ohne Elastic-Benutzernamen und Schlüssel anzugeben. Hierfür gibt es zwei einfache Lösungen, nämlich erstens das Zertifikat lokal umgehen (nicht empfohlen, aber funktioniert):

curl -u elastic:<IHR-PASSWORT> https://localhost:9200 -k

oder (und empfohlen) den Ort vom Elasticsearch-Zertifikat angeben:

curl -u elastic:<IHR-PASSWORT> https://localhost:9200 --cacert /usr/share/elasticsearch/certs/ca/ca.crt

Anmerkung: <IHR-PASSWORT> wird beim Hochfahren vom Docker-Container erstellt und kann dann eingesehen werden.

Schlagwörter: , ,

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Do NOT follow this link or you will be banned from the site!