Elasticsearch mit User + Password + Zertifikat?

Hallo,

wie kann ich eine Verbindung zu Elasticsearch mit User + Passwort + Zertifikat in der config.php hinterlegen?
Folgendes habe ich bereits probiert:

'hosts' => [
                'elastic:MeinPasswort@localhost:9200'
            ]

und

        'client' => [
            'hosts' => [
                'localhost:9200'
            ],
            'user' => 'elastic',
            'password' => 'MeinPasswort',
        ],
        'ssl' => [
	        'cert_path' => [
	        	'/www/htdocs/XXXXX/certs/http_ca.crt'
	        ]
	        
        ]

Beim initialen Import bekomme ich trotzdem die Meldung: No alive nodes found in your cluster

Hat jemand einen Tipp?

Danke und Gruß
Marco

Hallo Marco,

läuft Elasticsearch sicher auf localhost? Wenn das nicht der Fall ist, musst du den Hostnamen in der config entsprechend anpassen.

Grüße aus Lüneburg
Timme

Ja, Elasticsearch läuft auf localhost.
Ein Curl Aufruf mit Angabe vom Zertifikat und Benutzer funktioniert auch.
In der Doku finde ich keine Möglichkeit diese Werte in der config.php zu hinterlegen.

Hi,

wenn der ES Server nicht von extern zu erreichen ist, kannst Du die Authentifizierung auch abschalten:

Viele Grüße

Ich habe eben nochmal Rücksprache gehalten.
Mein Kollege meinte, mit benutzer:passwort@host in der config geht das. Er würde das Zertifikat aber eher direkt systemweit hinzufügen, damit es als sicher erkannt wird.
Laut den Defaults https://github.com/shopware5/shopware/blob/633e5ec44fabdbbbf73580a0ec857a4fb14030f9/engine/Shopware/Configs/Default.php#L171-L212 gibt es da keine Option für ssl und auch keine Felder für user und password.

Eine config, die ohne Zertifikat funktioniert, soll laut dem Kollegen diese sein:

 'es' => [
    'enabled' => true,
    'number_of_replicas' => 0,
    'number_of_shards' => 1,
    'version' => '[Elasticsearch Version]',
    'dynamic_mapping_enabled' => true,
    'client' => [
      'hosts' => [
        '[Benutzername]:[Passwort]@[Host]:[Port]'
      ],
    ],
  ],

Vielen Dank für die Antworten.

Leider ist die Entfernung des Logins nicht möglich.

Beim Host hatte ich bereits den Benutzer und Passwort übergeben.
Dann kann es nur noch am Zertifikat liegen. Ohne das Zertifikat, funktioniert der Aufruf per curl auch nicht.

Ich frage an, ob das Zertifikat systemweit hinterlegt werden kann.

Die Konfiguration vom Zertifikat hatte ich hier gefunden → https://github.com/shopware/elasticsearch/blob/trunk/DependencyInjection/Configuration.php#L32

Hi,

oder eine ältere ElasticSearch Version (z.B. 6.8.xx) verwenden, bei welcher es die Authentifizierung bzw. die Geschichte mit SSL Zertifikat noch nicht gab. Die 6.8er ist zwar EOL, ist Shopware 5 aber auch.

Evtl. bekommst Du anderweitig noch Probleme mit neueren ES Versionen (weiß gerade nicht, bis zu welcher Version Shopware 5 ES unterstützt).