当前位置:   article > 正文

为elasticsearch设置自签SSL教程_elasticsearch ssl

elasticsearch ssl

安装elasticsearch的docker版本,需要设置ssl,但是没有证书,能生成一个自签的证书,然后搭配到elasticsearch,生成相关ssl设置的教程

要在Elasticsearch Docker安装中使用自签名SSL证书,你可以按照以下步骤操作:

步骤 1: 安装 OpenSSL
确保你的系统上安装了OpenSSL。在大多数Linux发行版和MacOS上,OpenSSL通常已经预安装了。如果没有,你可以通过包管理器安装它。

步骤 2: 生成自签名证书
创建证书密钥:

openssl genrsa -out rootCA.key 4096


创建根证书(CA),内容随便填:

openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.pem


创建服务器证书的密钥:

openssl genrsa -out elasticsearch.key 4096


创建证书签名请求(CSR),内容随便填:

openssl req -new -key elasticsearch.key -out elasticsearch.csr


创建配置文件以指定证书选项:
创建一个文件 v3.ext ,以包含需要的DNS和IP地址,注意ip地址一定要设置准确,不然后面无法使用,例如:

  1. authorityKeyIdentifier=keyid,issuer
  2. basicConstraints=CA:FALSE
  3. keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
  4. subjectAltName = @alt_names
  5. [alt_names]
  6. DNS.1 = elasticsearch
  7. IP.1 = 127.0.0.1 #注意,如果是docker安装的一定要设置这个ip为容器ip地址,不然无法使用,可以
  8. IP.2 = 172.17.0.2
  9. IP.3 = 172.17.0.3
  10. #设置多个ip....


使用自己的CA签署SSL证书,如果ip不对的时候修改上面的v3.ext,从新运行下面的命令,然后移动到certs目录下面:

openssl x509 -req -in elasticsearch.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out elasticsearch.crt -days 500 -sha256 -extfile v3.ext


步骤 3: 设置Docker容器
在设置Elasticsearch Docker容器时,需要将证书挂载到容器内部,并配置Elasticsearch以使用这些证书。

创建一个docker-compose.yml文件,如下所示:

  1. networks:
  2. 1panel-network:
  3. external: true
  4. services:
  5. elasticsearch:
  6. container_name: ${CONTAINER_NAME}
  7. deploy:
  8. resources:
  9. limits:
  10. cpus: ${CPUS}
  11. memory: ${MEMORY_LIMIT}
  12. environment:
  13. - discovery.type=single-node
  14. - ELASTIC_PASSWORD=${ELASTIC_PASSWORD}
  15. - ${P_ES_JAVA_OPTS}
  16. - xpack.security.enabled=true
  17. - xpack.security.transport.ssl.enabled=true
  18. - xpack.security.transport.ssl.verification_mode=certificate
  19. - xpack.security.transport.ssl.key=certs/elasticsearch.key
  20. - xpack.security.transport.ssl.certificate=certs/elasticsearch.crt
  21. - xpack.security.transport.ssl.certificate_authorities=certs/rootCA.pem
  22. - xpack.security.http.ssl.enabled=true
  23. - xpack.security.http.ssl.key=certs/elasticsearch.key
  24. - xpack.security.http.ssl.certificate=certs/elasticsearch.crt
  25. - xpack.security.http.ssl.certificate_authorities=certs/rootCA.pem
  26. image: docker.elastic.co/elasticsearch/elasticsearch:8.13.0 #使用那个版本就修改那个版本
  27. labels:
  28. createdBy: Apps
  29. networks:
  30. - 1panel-network
  31. ports:
  32. - ${HOST_IP}:${PANEL_APP_PORT_HTTP}:9200
  33. restart: always
  34. ulimits:
  35. memlock:
  36. hard: -1
  37. soft: -1
  38. nofile:
  39. hard: 65536
  40. soft: 65536
  41. volumes:
  42. - ./data/data:/usr/share/elasticsearch/data
  43. - ./data/backup:/usr/share/elasticsearch/backup
  44. - ./data/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
  45. - ./data/conf/certs:/usr/share/elasticsearch/config/certs
  46. version: "3"

本地没有目录的,先新建相应的本地目录和文件,我的elasticsearch.yml文件配置如下:

  1. cluster.name: "docker-cluster"
  2. network.host: 0.0.0.0
  3. path.repo: ["/usr/share/elasticsearch/backup"]
  4. http.cors.enabled: true
  5. http.cors.allow-origin: "*"
  6. http.cors.allow-headers: X-Requested-With,Content-Type,Content-Length,Authorization


将证书和密钥放在你的项目目录中的 certs 文件夹中。

步骤 4: 启动Elasticsearch
使用 docker-compose up 命令启动Elasticsearch容器。

步骤 5: 验证并设置密码

docker ps 可以查看所有docker的信息,找到你刚刚新建的容器名修改下面的命令,进入容器

  1. docker container exec -it <容器名> bash
  2. #进入后运行
  3. ./bin/elasticsearch-setup-passwords auto

如果一切正常就显示如下图,如果报ip错误,则按照步骤2中的v3.ext ip设置重新设置运行后面的命令:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/663234
推荐阅读
相关标签
  

闽ICP备14008679号