我使用 certbot 生成了一个证书文件。它被放置在
/etc/letsencrypt/...
。
我创建了一个名为
elk
的组,在其中添加了 elasticsearch
用户,并递归地将其设置为 /etc/letsencrypt
的所属组,并递归地将权限设置为 770
。
当我通过
systemctl start elasticsearch.service
启动elasticsearch时,它无法读取文件? Caused by: java.security.AccessControlException: access denied ("java.io.FilePermission" "/etc/letsencrypt/live/<domain>/fullchain.pem" "read")
这是为什么?
您建议采取什么策略才能对 elasticsearch 和 kibana 使用相同的证书?
您应该检查以下权限:
在最佳实践中,建议将证书保存在
/etc/elasticsearch
目录中。所以我建议针对 linux 环境执行以下步骤。
mkdir /etc/elasticsearch/certs
cp /etc/letsencrypt/live/<domain>/* /etc/elasticsearch/certs/
chown elasticsearch:elasticsearch /etc/elasticsearch/certs/ -R
您可以对 kibana 和 elasticsearch 使用相同的证书。 https://www.elastic.co/guide/en/elasticsearch/reference/current/security-basic-setup-https.html#encrypt-kibana-http
https://www.elastic.co/guide/en/kibana/current/settings.html
elasticsearch.ssl.certificate
elasticsearch.ssl.certificateAuthorities
Kibana 在与 Elasticsearch 建立出站 SSL/TLS 连接时使用这些来验证自身身份。
也请检查类似的问题这里。