1. 程式人生 > >Yii2 elasticseach ssl認證配置及原始碼修改

Yii2 elasticseach ssl認證配置及原始碼修改

後面做了優化,修改原始碼,建議採用優化後的方法

1、修改本地es連線配置(原始碼示例容易誤導,看原始碼讀取配置後才正確配置):
在這裡插入圖片描述

2、修改protocol設定,yii2中es連線之前會獲取所有的可連線es叢集,因為es不存在protocol屬性,原始碼中手動設定為http,這個地方作者考慮補全,沒有采用本地配置的protocol,因此要修正:
在這裡插入圖片描述

3、修改curl請求的證書認證,增加三個opt選項,CURLOPT_SSL_VERIFYPEER=true,設定為要驗證證書,CURLOPT_SSL_VERIFYHOST=false,設定為不驗證證書hostname是否一致,CURLOPT_CAINFO配置證書的路徑:
在這裡插入圖片描述

注意:在es中的官網中提及,如果返回空迴應,則說明es的認證配置成功。如果取不到資料,那麼就需要考慮其他問題了,比如第2步中修改protocol為https才能拿到資料。
在這裡插入圖片描述

優化:

1、修改後的main-local.php配置。上面第2步中修改protocol設定,其實是自以為找到了原始碼作者疏忽的地方,其實更簡便的辦法是修改元件配置的defaultProtocol為https,就像下面配置中那樣。
在這裡插入圖片描述

2、當然,把protocol設定為https後,大家肯定是希望使用ssl加密訪問了。那下面就以它為參考,在原始碼中增加ssl的擴充套件配置。

  • 新增一個元件配置sslExtension,並讓他與其他配置一起生效
  • 修改配置項

在這裡插入圖片描述
在這裡插入圖片描述

3、測試通過,結果與未優化之前是一樣的。