【问题标题】:logstash http_poller ssl certification issuelogstash http_poller ssl 认证问题
【发布时间】:2016-12-06 02:41:02
【问题描述】:

我正在尝试使用 logstash http_poller 来查询服务器 RESTAPI。我通过 explore 下载服务器 pem,并使用 keytool 生成 jks 文件。但我们仍然收到错误“PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径”。不知道哪里错了。

如下配置:

http_poller {
    urls => {  
      restapi => {
         method => get
        url => "https://path_to_resources
        headers => {
          Accept => "application/json"
        }
        truststore => "/path/generated.truststore.jks"
        truststore_password => "xxx"
        ssl_certificate_validation => false
        auth => {
          user => "xxx"
          password => "xxx"
        }
      }
    }
    request_timeout => 60
    interval => 60000
    codec => "json"
    metadata_target => "http_poller_metadata"
  }
}      

对了,如果ssl_certificate_validation设置为false会有什么影响?

【问题讨论】:

  • 你解决了吗?

标签: ssl logstash


【解决方案1】:

我将 OP 的意图解释为 希望 能够禁用 TLS 验证,但我们仍然无法 (logstash-7.11.1),我继续努力研究如何为这些情况获取信任库。这个Q是我追求相同的热门之一。

一些设备将运行自签名证书(另一个讨论 ppl...) - 因此设置此类信任存储的小脚本可能会有所帮助,特别是如果您要在内部设置一些自动化。

另一个需要注意的是,自签名证书仍然必须具有匹配的主机名。

基于https://www.elastic.co/guide/en/logstash/current/plugins-inputs-http_poller.html的示例

注意!进一步的错误检查等由您自行决定。

#!/bin/bash
# Fetch an http server's TLS certificate and
# create or update a JAVA keystore / truststore

usage () {
    echo "usage: get-cert.sh <hostname>:<port>"
    exit 1
}

TRUSTSTORE=cacert/trust.jks

PARAM=$1
HOSTNAME=$(echo "$PARAM" | cut -d: -f 1)
PORT=$(echo "$PARAM" | cut -d: -f 2)
REST=$(echo "$PARAM" | cut -d: -f 3-)

[ -z "$HOSTNAME" ] && usage
[ -z "$PORT" ] && usage
[ -n "$REST" ] && usage

OUTPUT=$(
openssl \
    s_client \
    -showcerts \
    -connect "${HOSTNAME}":"${PORT}" </dev/null 2>/dev/null | \
    openssl \
        x509 \
        -outform PEM)
EC=$?
[ $EC -ne 0 ] && { echo "ERROR EC=$EC - $OUTPUT" ; exit $EC ; }

keytool \
    -import \
    -storepass changeit \
    -alias ${HOSTNAME} \
    -noprompt \
    -file <(echo "$OUTPUT") \
    -keystore ${TRUSTSTORE}

在这里使用一些 bash 特定的可能性。另一种方法是通过临时文件,如官方示例(见上面的链接)。

【讨论】:

    【解决方案2】:

    显然您的证书无效。 关于

    ssl_certificate_validation 
    

    它没有真正的影响,http-puller 是基于 manticore 的,这是一个基于 Apache HC 的 ruby​​ 库
    which does not support this hook see

    【讨论】:

      猜你喜欢
      • 2016-12-30
      • 2021-02-14
      • 2014-04-23
      • 1970-01-01
      • 2015-05-29
      • 1970-01-01
      • 1970-01-01
      • 2022-09-28
      • 2017-09-07
      相关资源
      最近更新 更多