簡體   English   中英

在Elasticsearch-php客戶端上使用https

[英]using https with elasticsearch-php client

我目前正在嘗試使用php elasticsearch客戶端連接到我的彈性搜索集群

我在為此使用https端點時遇到麻煩。 我的群集位於負載均衡器的后面,前端帶有VIP,它使用Apache身份驗證,並且位於端口443上。我遇到的問題是客戶端的配置似乎正在解析主機並刪除https://從主機名。 這導致客戶端始終嘗試通過端口80連接。我曾嘗試將:443添加到主機名,但隨后收到卷曲錯誤“來自服務器的空回復”。 我知道該服務器具有訪問權限(沒有防火牆阻止),因為我可以使用https://myelasticsearch.com手動進行curl調用。

我的問題是,是否可以指定一種協議來使用此客戶端發出請求? 如果不是,主機數組的解析在源代碼中的何處發生?

我找到了一個臨時解決方案,在src/Elasticsearch/Connections/AbstractConnection.php有一個已定義的transportSchema變量,該變量設置為http 我將其更改為https並且還在配置中將:443添加到主機中,它可以正常工作!

就像對此問題的更新(以防萬一有人偶然發現)一樣,此錯誤已在Elasticsearch-PHP v1.1.0中修復。 您現在可以在主機中指定https以使用SSL:

$params = array();
$params['hosts'] = array (
    'https://localhost',        // SSL to localhost
    'https://192.168.1.3:9200'  // SSL to IP + Port
);

$client = new Elasticsearch\Client($params);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM