前言:

  作者在执行命令《./bin/elasticsearch-plugin install ingest-attachment》安装ingest-attachment 插件的时候报

Exception in thread "main" javax.net.ssl.SSLHandshakeException: Remote host closed connection during

 简单介绍 ingest-attachment 插件:

安装 ingest-attachment 插件的意义在于为 Elasticsearch 添加一种新的数据处理方式,它可以提取各种文件类型的内容并将其转换成文本。这是一个非常有用的插件,特别是当您需要对大量的文档进行全文搜索时或需要对文件进行分类时,就可以使用它来实现。

具体来说,ingest-attachment 插件可以提供以下几个功能:

  1. 提取文本:通过使用 Apache Tika 库,该插件可以提取包括 PDF、Word、HTML、XML、纯文本等在内的多种文件类型的内容,并将其转换成可供 Elasticsearch 进行全文搜索的结构化文本。

  2. 处理元数据:ingest-attachment 插件可以提取文件的元数据,例如文档的标题、作者、日期等等信息。

  3. 自定义处理逻辑:该插件提供了一个允许自定义处理逻辑的框架,可以通过使用脚本以及 Elasticsearch 的 ingest API 来实现自定义监管。

因此,安装 ingest-attachment 插件可以帮助您更好地处理和管理文档内容,并在 Elasticsearch 中实现更加高效和准确的全文搜索和分类功能。

解决方法:

这通常是由于 SSL 证书验证失败所致 

首先,让我们了解一下可能导致错误的原因。当连接 Elasticsearch 服务器时,执行 SSL 握手过程以建立安全连接。如果 SSL 握手过程中发生问题,就可能会导致上述错误的出现。下面是几种可能的解决方法:

  1. 确认 elasticsearch.yml 中的 SSL 证书配置是否正确:检查您在 Elasticsearch 的配置文件 elasticsearch.yml 中的 SSL 证书配置是否正确。您需要确保指定了正确的证书路径、证书密码以及其他相关配置项。

  2. 确认证书是否过期或被吊销:如果您使用的证书已经过期或被吊销,也会导致 SSL 握手错误。请确保您使用的证书是有效的,且没有过期或被吊销的情况。

  3. 尝试禁用 SSL 证书验证:在某些情况下,您可以尝试禁用 SSL 证书验证并重新执行安装命令。为此,请在 elasticsearch.yml 文件中添加以下配置:

    xpack.security.http.ssl.verification_mode: none
    

    这将使 Elasticsearch 忽略对 SSL 证书的验证。请注意,禁用验证可能会降低安全性,请在确认此操作安全的前提下使用此方法。

  4. 尝试手动导入证书:如果您拥有证书的相关文件,可以使用 keytool 命令将证书导入到 Java 证书库中。下面是一个示例命令:

    keytool -importcert -keystore $JAVA_HOME/lib/security/cacerts -file /path/to/certificate.crt -alias "My Certificate"
    

    将 $JAVA_HOME 替换为您的 Java 安装目录,/path/to/certificate.crt 替换为证书文件的路径和文件名,而"My Certificate" 则是您为证书设置的别名。

    导入证书后,重新执行 elasticsearch-plugin install 命令,这应该能够解决 SSL 握手错误。

作者使用了第三种,手动禁用了SSL证书,但是这是并不保证安全性。 

更多推荐