用es单机版的方式开启xpack认证的时候,执行./bin/elasticsearch-setup-passwords auto 或者 ./bin/elasticsearch-setup-passwords interactive 最终会出现 ERROR:Usercancelled operation 的错误!
解决方法:
1, 生成CA证书
./bin/elasticsearch-certutil ca
a.出现提示时,接受默认文件名,即 elastic-stack-ca.p12。此文件包含 CA 的公共证书和用于为每个节点签署证书的私钥。
b.输入 CA 的密码。如果不部署到生产环境,您可以选择将密码留空。
2, 配置CA证书
在任何单个节点上,为集群中的节点生成证书和私钥。包括在上一步中生成的 elastic-stack-ca.p12 输出文件
./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
a.输入您的 CA 的密码,或者如果您在上一步中没有配置密码,请按 Enter。
b.为证书创建密码并接受默认文件名。
输出文件是一个名为 elastic-certificates.p12 的密钥库。此文件包含节点证书、节点密钥和 CA 证书。
3, 复制证书到集群
在集群中的每个节点上,将 elastic-certificates.p12 文件复制到 $ES_PATH_CONF 目录。也就是config目录。
4, 修改配置文件,加入一下配置
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.client_authentication: required
xpack.security.transport.ssl.keystore.path: /usr/share/elasticsearch/config/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: /usr/share/elasticsearch/config/elastic-certificates.p12
5, 配置密码
若在第2步的时候设置了密码,则需要这一步操作,若没有设置密码,可以跳过此步
./bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password
./bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password
6, 重启es
7, 设置密码即可
./bin/elasticsearch-setup-passwords auto
网友评论