Elastic Search 7.1 (Open Distro) Сбой эластичного поиска PHP-соединение с самозаверяющими сертификатами

Клиент PHP - в вашем кластере не найдено живых узлов.

Я использую Elastic Search 7.1 (открытый образ докера Distro), который поставляется с предварительно настроенными самозаверяющими сертификатами. Итак, в соответствии с документами по Elastic Search PHP мне нужно передать сертификат корневого CA, чтобы клиент Elastic Search мог проверить SSL-соединение. Поэтому я скопировал файл ca-root.pem из образа докера на мой веб-сервер и передал его в ClientBuilder.

$host = 'https://admin:admin@elasticsearch:9200';

$caBundle = './aws/dockerdevbox/certs/root-ca.pem';

$this->client = ClientBuilder::create()
   ->setHosts([$host])
   ->setSSLVerification($caBundle)
   ->build();

Это приводит к ошибке:

Elasticsearch\Common\Exceptions\NoNodesAvailableException: No alive nodes found in your cluster.

Просматривая журналы Elastic Search, я вижу следующее:

[elasticsearch] SSL Problem Received fatal alert: unknown_ca

Но с того же хоста, если я использую curl и передаю сертификат CA, у нас нет проблем:

curl --cacert aws/dockerdevbox/certs/root-ca.pem -X GET "https://admin:admin@elasticsearch:9200/_cluster/health?pretty"
{
  "cluster_name" : "cluster",
  "status" : "yellow",
  "timed_out" : false,
  "number_of_nodes" : 1,
  "number_of_data_nodes" : 1,
  "active_primary_shards" : 210,
  "active_shards" : 210,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 202,
  "delayed_unassigned_shards" : 0,
  "number_of_pending_tasks" : 0,
  "number_of_in_flight_fetch" : 0,
  "task_max_waiting_in_queue_millis" : 0,
  "active_shards_percent_as_number" : 50.970873786407765
}

Я попробовал все, я даже попробовал с моими собственными самозаверяющими сертификатами в отличие от тех, которые поставляются с сервером, и все еще те же результаты. Я буквально пытался заставить это работать весь день, и это должно быть довольно просто.

Надеюсь, кто-нибудь столкнулся с этой проблемой и может помочь мне!

Сведения о системе

  • Операционная система Linux
  • Версия PHP 7.2
  • Клиент ES-PHP версии 7.0
  • Elasticsearch версия 7.1 (Открытый дистрибутив)
  • Изображение докера: amazon/opendistro-for-asticsearch:1.1.0

0 ответов

Другие вопросы по тегам