Easysearch 基础运维扫盲指南:从 HTTP 到 HTTPS、认证与安全访问全解析
众所周知,原生 Elasticsearch 默认开启的是 HTTP 明文接口,并且不开启认证或加密。如果要启用 TLS/SSL 加密和账号认证,通常需要额外配置一系列安全模块。
而在 EasySearch 中,官方通过 initialize.sh 初始化脚本,大大简化了这些安全配置,启动时就能自动生成证书并开启密码保护。不过在一些测试或开发环境中,我们可能希望临时使用 HTTP + 无密码 的简化方式来调试。
本文将从配置文件入手,逐步说明如何启用或关闭认证、如何从 HTTPS 切换回 HTTP,以及如何开放外网访问。
🛠 初始化启动信息与默认密码
当你执行 bin/initialize.sh 后,终端和 initialize.log 会输出初始化信息,其中包括自动生成的管理员账号密码,例如:
1 | curl -ku admin:160824cab0b02193226e https://localhost:9200 |
默认情况下,服务已启用 HTTPS 与密码认证。
⚙ 修改配置文件:easysearch.yml
配置文件位于:
1 | config/easysearch.yml |
可以在此文件中自定义集群名称:
1 | cluster.name: my-application |
修改前访问效果如下:
1 | curl -ku admin:160824cab0b02193226e http://localhost:9200 |
1 | "cluster_name": "easysearch", |
修改后再次访问:
1 | curl -ku admin:160824cab0b02193226e http://localhost:9200 |
1 | "cluster_name": "my-application", |
🌐 开放外网访问(单节点部署)
如果你希望让其他设备或公网访问 EasySearch,可以添加以下参数:
1 | network.host: 0.0.0.0 |
此外,为了提高对 Elasticsearch 客户端的兼容性,建议添加:
1 | elasticsearch.api_compatibility: true |
🔒 控制 HTTPS 与密码认证
EasySearch 的安全配置由以下两个核心参数控制:
| 参数 | 作用 |
|---|---|
security.enabled |
是否启用认证(账号密码)和 HTTPS 模块 |
security.ssl.http.enabled |
是否启用 HTTPS(SSL/TLS 加密) |
🔁 配置组合含义如下:
security.enabled |
security.ssl.http.enabled |
效果 |
|---|---|---|
| true | true | 默认配置,启用认证 + HTTPS(推荐) |
| true | false | 仅认证,无加密,使用明文 HTTP |
| false | true | 无认证,HTTPS 加密,仅适合特殊用途 |
| false | false | 最开放,HTTP + 无密码,不推荐生产使用 |
你可以根据实际需求选择是否打开加密或认证,适配测试与生产环境。
📸 示例:启用 HTTP 且开启认证
如果你修改配置为 security.ssl.http.enabled: false,即可使用 HTTP,但仍要求输入用户名密码进行访问:
1 | security.enabled: true |
访问效果如下图所示:

✅ 小结
| 场景 | 推荐配置 |
|---|---|
| 本地测试(不加密、无密码) | security.enabled: false + security.ssl.http.enabled: false |
| 本地测试(仅加认证) | security.enabled: true + security.ssl.http.enabled: false |
| 安全访问(默认) | security.enabled: true + security.ssl.http.enabled: true |
| HTTPS 不认证 | security.enabled: false + security.ssl.http.enabled: true |
EasySearch 提供了灵活的配置方式,适合不同场景自由切换。对于开发者来说,理解这两个参数的作用,是快速上手运维的第一步。
提到认证,我们再看看如何修改密码,由于 Easysearch 默认新建了一个 admin 的用户,并且存在 config/security/user.yml 下
1 | --- |
这个我们也可以使用 postman 开调用 API.http://localhost:9200/\_security/account

1 | import requests |
新建用户

查看接口:https://localhost:9200/\_security/user
不过 yml 文件还是只有 admin,用 api 查看

使用新用户测试可以访问:

mysql -P 3306 -u admin -p -h mysqlsource.crtihcoeqzab.us-west-2.rds.amazonaws.com < people.sql
mysql -P 3306 -u admin -p -h mysqlsource.crtihcoeqzab.us-west-2.rds.amazonaws.com people
psql -h cloudacademylabs-targetcluster-0zdokkxbiyyh.cluster-ro-crtihcoeqzab.us-west-2.rds.amazonaws.com -U postgres -p 5432 people
Easysearch 基础运维扫盲指南:从 HTTP 到 HTTPS、认证与安全访问全解析


