node.js elasticsearch证书链中的自签名证书

3j86kqsm  于 5个月前  发布在  ElasticSearch
关注(0)|答案(2)|浏览(69)

我一直在尝试学习elasticsearch,并决定尝试将其与node.js连接。我有一个elasticsearch运行+我创建的名为test-idx的索引。我按照elasticsearch的文档连接并创建一个文档,但是当我运行代码时,我得到'ConnectionError:self signed certificate in certificate chain'后跟一个巨大的Meta对象。

const client = new elasticsearch.Client({
    node: 'https://localhost:9200',
    auth: {
      username: 'elastic',
      password: '123456'
    }
})

client.index({
    index: 'test-idx',
    document: {
        field: 'test123'
    }
  })

字符串
我尝试在创建客户端示例时添加,但似乎没有帮助

tls: {
    rejectUnauthorized: false
  }

exdqitrt

exdqitrt1#

我正在使用node和nest js
第一个月

2eafrhcq

2eafrhcq2#

你可以为elasticsearch创建一个证书,并将其包含在你的nestjs应用程序中,而不是在auth提供时接受未经授权的。
默认情况下,证书文件驻留在弹性设置所在的位置:例如elasticsearch/config/certs/http_ca.crt
如果你使用的是dockerized的,像这样复制到容器外部:
docker cp <elastic-container-name>:/usr/share/elasticsearch/config/certs/http_ca.crt .

import * as fs from 'fs';
import * as path from 'path';

const certificatePath = path.resolve(process.cwd(), '<path-to-your-crt-file-from-app-root');

...
 auth: {
        username: 'elastic',
        password: 'password'
      },
      tls: {
        ca: fs.readFileSync(certificatePath)
      }
...

字符串

相关问题