ES证书认证相关笔记

由于自己颁发的证书,浏览器识别为不安全,当遇到不能访问时,可以采用以下方法试试:

image-20220611002901529

方法:点击页面空白处,输入badidea或者thisisunsafe。页面会自动刷新。

一、集群间节点认证

  1. 生成ca证书

    bin/elasticsearch-certutil ca
    

    可以设置密码

  2. 生成elastic-certificates.p12证书

    bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
    

    如果ca证书设置了密码,该命令执行后,需要输入ca证书的密码

    该证书本身也可以设置密码

    在以上两步执行完成之后,会得到以下文件

    elastic-certificates.p12  elastic-stack-ca.p12
    
  3. 如果ca证书和elastic-certificates.p12证书设置了密码

    则需要执行以下命令

    bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password    
    bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password 
    

    在执行每行命令之后,都需要输入ca证书的密码

  4. 将证书拷贝到每个节点的config/certs目录下

  5. 配置elasticsearch

    xpack.security.enabled: true
    xpack.security.transport.ssl:
      enabled: true
      verification_mode: certificate
      keystore.path: certs/elastic-certificates.p12
      truststore.path: certs/elastic-certificates.p12
    
  6. 启动es

  7. 访问es

    curl http://localhost:9200
    

    注:此时还没有为es设置访问的https,只是设置了集群内部通信的加密

    此时应修改elastic的初始化密码和kibana的密码

    ./bin/elasticsearch-reset-password -i -u kibana
    ./bin/elasticsearch-reset-password -i -u elastic
    
  8. 设置外部访问es,使用https

    如果ca证书设置了密码,则需要执行以下命令,并在命令执行之后,输入ca证书的密码

    bin/elasticsearch-keystore add xpack.security.http.ssl.keystore.secure_password    
    bin/elasticsearch-keystore add xpack.security.http.ssl.truststore.secure_password 
    

    在es配置文件中,添加以下配置

    xpack.security.http.ssl:
      enabled: true
      keystore.path: certs/elastic-certificates.p12
    
  9. 如果遇到更新geoip库失败,则关闭它

    ingest.geoip.downloader.enabled: false
    

二、配置kibana访问es

  1. 生成crt证书文件

    在es的证书目录下,执行以下命令

    cd config/certs
    openssl pkcs12 -in elastic-stack-ca.p12 -out kibana.crt.pem -clcerts -nokeys
    

    该命令会生成一个证书kibana.crt.pem

    将该证书移动到kibana的配置目录下

  2. 配置kibana

    elasticsearch.username: "kibana"
    elasticsearch.password: "XXXX you know, kibana password"
    
    elasticsearch.ssl.certificateAuthorities: ["config/kibana.crt.pem"]
    elasticsearch.ssl.verificationMode: none
    
  3. 启动kibana,访问kibana

    http://localhsot:5601
    

三、设置外部访问kibana使用https

  1. 生成证书和私钥

    在es目录下执行以下命令

    ./bin/elasticsearch-certutil csr -name kibana-server -dns example.com, localhost
    

    ./bin/elasticsearch-certutil csr -name kibana-server -ip 127.0.0.1
    

    注:该证书只能是dns或ip后面的地址来访问

    该命令执行完毕后,会生成一个压缩包csr-bundle.zip

  2. 移动证书

    将压缩包解压后,将里面的文件移动到kibana的配置目录下

    在压缩包中有两个文件

    kibana-server.csr  kibana-server.key 
    
  3. 生成 kibana-server.crt 文件

    在kibana的配置目录下,执行以下命令

    openssl x509 -req -in kibana-server.csr -signkey kibana-server.key -out kibana-server.crt
    

    该命令会生成kibana-server.crt文件

  4. 修改kibana配置文件

    添加以下内容

    server.ssl.enabled: true
    server.ssl.certificate: config/kibana-server.crt
    server.ssl.key: config/kibana-server.key
    
  5. 重启kibana,访问kibana

    https://localhost:5601
    
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值