配置Filebeat连接Elasticsearch时证书文件读取失败求助
排查步骤
确认证书实际存放路径
Elasticsearch的http_ca.crt默认路径随安装方式不同而变化:- 源码包(tar)安装:默认在Elasticsearch安装目录的
config/certs/下 - 系统包(deb/rpm)安装:默认路径为
/etc/elasticsearch/certs/ - Docker部署:需先从容器内复制证书到宿主机,示例命令:
docker cp <ES容器名>:/usr/share/elasticsearch/config/certs/http_ca.crt .
- 源码包(tar)安装:默认在Elasticsearch安装目录的
修正命令中的路径
你使用的是相对路径config/certs/http_ca.crt,仅当当前工作目录是Elasticsearch根目录时才有效。建议换成绝对路径执行命令,示例:sudo openssl x509 -fingerprint -sha256 -in /etc/elasticsearch/certs/http_ca.crt或先切换到证书所在目录再执行:
cd /etc/elasticsearch/certs/ sudo openssl x509 -fingerprint -sha256 -in http_ca.crt验证证书文件是否存在
用ls命令确认目标路径下的文件:ls -l /etc/elasticsearch/certs/若文件不存在,说明Elasticsearch初始化时未生成证书或证书被误删,可重新生成:
sudo /usr/share/elasticsearch/bin/elasticsearch-certutil ca生成后将证书移动到指定目录并设置正确权限:
sudo mv http_ca.crt /etc/elasticsearch/certs/ sudo chown elasticsearch:elasticsearch /etc/elasticsearch/certs/http_ca.crt检查文件权限
即使文件存在,当前用户(或sudo后的用户)可能无读取权限。用ls -l查看权限:ls -l /etc/elasticsearch/certs/http_ca.crt若权限不足,执行以下命令调整:
sudo chmod 644 /etc/elasticsearch/certs/http_ca.crt
内容的提问来源于stack exchange,提问作者AAKASH CHAUHAN
相关产品推荐
相关产品推荐

