您的位置:首页 > 房产 > 家装 > 安康养老院收费价格表_企业网站建设综合实训学习体会_社群营销方案_英语培训机构前十名

安康养老院收费价格表_企业网站建设综合实训学习体会_社群营销方案_英语培训机构前十名

2025/5/4 16:55:51 来源:https://blog.csdn.net/weixin_38781498/article/details/147514771  浏览:    关键词:安康养老院收费价格表_企业网站建设综合实训学习体会_社群营销方案_英语培训机构前十名
安康养老院收费价格表_企业网站建设综合实训学习体会_社群营销方案_英语培训机构前十名

Easysearch 基础运维扫盲指南:从 HTTP 到 HTTPS、认证与安全访问全解析

众所周知,原生 Elasticsearch 默认开启的是 HTTP 明文接口,并且不开启任何身份认证或传输加密。若想启用 TLS/SSL 加密及账号密码验证,通常需要配置繁琐的安全模块。

而 Easysearch 在此基础上做了极大的简化,通过官方提供的 initialize.sh 脚本,一键完成初始化即可自动生成证书、配置 HTTPS,并启用密码认证。

当然,对于本地开发或临时测试场景,我们也可能希望关闭 HTTPS 与认证,直接通过 HTTP 调试服务。本文将从配置文件出发,逐步讲解如何根据不同需求配置 Easysearch 的安全策略、通信协议与外网访问权限。


🛠 一、初始化输出与默认账号密码

执行以下初始化命令后:

bin/initialize.sh

终端及 initialize.log 文件中将输出初始的访问方式和管理员账号密码,例如:

curl -ku admin:160824cab0b02193226e https://localhost:9200

默认情况下,Easysearch 启用了 HTTPS 通信及密码认证。


⚙ 二、修改配置文件:easysearch.yml

配置文件路径:

config/easysearch.yml

例如,你可以修改集群名称:

cluster.name: my-application

修改前访问输出:

"cluster_name": "easysearch"

修改后:

"cluster_name": "my-application"

🌐 三、开放外网访问(单节点部署)

若希望在局域网或公网访问 Easysearch,可以加入以下配置:

network.host: 0.0.0.0
http.port: 9200
discovery.type: single-node

此外,为增强对原生 Elasticsearch 客户端的兼容性,建议添加:

elasticsearch.api_compatibility: true

🔐 四、控制 HTTPS 与认证功能开关

Easysearch 提供两个核心参数控制安全行为:

参数说明
security.enabled控制是否启用身份认证和安全模块
security.ssl.http.enabled控制是否启用 HTTPS(SSL/TLS)

你可以根据环境选择配置组合:

security.enabledsecurity.ssl.http.enabled效果
truetrue默认配置,启用 HTTPS 和认证(推荐)
truefalse明文 HTTP + 启用认证
falsetrue启用加密但无身份认证(不常见)
falsefalse完全开放,无认证 + HTTP(⚠️ 不建议生产使用)

📸 五、示例:启用 HTTP 并保留认证

如果你希望使用 HTTP 而不启用 HTTPS,可修改如下配置:

security.enabled: true
security.ssl.http.enabled: false

访问时依然需要提供账号密码,效果如下图所示:

image-20250425120123219


🔧 六、用户认证与密码管理

初始化完成后,Easysearch 默认会创建一个管理员用户 admin,其信息存储在:

config/security/user.yml

示例如下:

admin:hash: "$2y$12$rmNDJxpQdRDb3F1dqk.uweSZqH3VAqeEpkP298vJ6QS99K80kbRoO"reserved: trueexternal_roles:- "admin"description: "Admin user"

你可以使用 Postman 或 Python 脚本验证访问:

import requestsurl = "http://localhost:9200"
headers = {'Authorization': 'Basic YWRtaW46MTYwODI0Y2FiMGIwMjE5MzIyNmU='
}
response = requests.get(url, headers=headers)
print(response.text)

👤 七、新建用户与管理接口

你可以通过以下接口查询当前用户信息:

GET /_security/account

在这里插入图片描述

也可以访问:

GET /_security/user

在这里插入图片描述

用于列出所有用户。

虽然 user.yml 文件默认只包含 admin 用户,但通过 API 添加的新用户同样生效。如下图所示,通过 Postman 创建的新用户已成功生效:

  • 新用户创建界面:

    新建用户

  • 使用新用户访问验证成功:

    新用户访问


✅ 总结

场景推荐配置
本地测试(无加密、无认证)security.enabled: false + security.ssl.http.enabled: false
本地调试(加认证、无加密)security.enabled: true + security.ssl.http.enabled: false
生产环境(安全通信)security.enabled: true + security.ssl.http.enabled: true
特殊用途(加密但无认证)security.enabled: false + security.ssl.http.enabled: true

EasySearch 提供了非常灵活的配置机制,开发者可以根据具体需求,自由切换 HTTP/HTTPS、开启或关闭认证模块。理解并掌握这两个核心安全参数,将大大提升你对 EasySearch 的运维掌控力。

🔐 附录:关于 Basic Auth 的原理与使用方式

在 Easysearch 默认开启认证的情况下,我们在请求中经常会看到如下的 Authorization 头:

Authorization: Basic YWRtaW46MTYwODI0Y2FiMGIwMjE5MzIyNmU=

这其实就是标准的 HTTP Basic 认证,格式如下:

Authorization: Basic <Base64 编码后的 用户名:密码>

🧠 举个例子:

Base64 编码前是:

admin:160824cab0b02193226e

编码后变成:

YWRtaW46MTYwODI0Y2FiMGIwMjE5MzIyNmU=

也就是说,以下请求:

headers = {'Authorization': 'Basic YWRtaW46MTYwODI0Y2FiMGIwMjE5MzIyNmU='
}

等价于:

curl -u admin:160824cab0b02193226e http://localhost:9200

⚠️ 安全提示:

Base64 只是编码 不是加密,账号密码依然是明文形式,因此 必须配合 HTTPS 使用,否则容易被中间人监听。


🌐 使用 URL 携带用户名密码(不推荐但有时方便)

除了 Header 或 curl -u 的方式,HTTP 协议还允许通过 URL 携带账号密码:

curl http://admin:160824cab0b02193226e@localhost:9200

浏览器中也可以直接访问:

http://admin:160824cab0b02193226e@localhost:9200

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com