大家都知道 Easysearch 开箱即启用安全功能,会自动生成一个复杂的密码,数据传输使用加密方式。今天介绍个不用密码使用证书连接 Easysearch 的方法,希望能帮助到有需要的人。
演示环境
服务端: Easysearch 1.12.0
客户端: Python Elasticsearch 7.10.1
说明:从 Elasticsearch 迁移到 Easysearch 可以做到 0 开发投入,客户端、DSL、API 统统兼容。
代码示例
我们使用 Elasticsearch 7.10.1 Python 客户端,连接 Easysearch 使用 admin 证书进行认证,并查询 test 索引数据。 admin 证书是 Easysearch 初始化自动生成的,在 config 目录下。
from elasticsearch import Elasticsearch
from elasticsearch.connection import create_ssl_context
import ssl
# 创建自定义 SSL 上下文
ssl_context = create_ssl_context()
ssl_context.check_hostname = False
ssl_context.verify_mode = ssl.CERT_NONE
ssl_context.load_cert_chain(
certfile="/Users/mac/python-test/admin.crt",
keyfile="/Users/mac/python-test/admin.key"
)
es = Elasticsearch(
["https://localhost:9201"],
ssl_context=ssl_context
)
try:
response = es.search(
index="test",
body={"query": {"match_all": {}}}
)
print("✅ 搜索成功!")
print(response)
except Exception as e:
print("❌ 错误:", e)
if __name__ == '__main__':
pass
没有安装 elasticsearch 客户端的同学,先安装下。
pip3 install elasticsearch==7.10.1
运行结果展示:

还有更多 Python 客户端的用法请参考这里。