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