Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js nodejs API基本身份验证的证书链中的自签名证书错误_Node.js_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Python Requests_Basic Authentication_Unirest - Fatal编程技术网 elasticsearch,python-requests,basic-authentication,unirest,Node.js,elasticsearch,Python Requests,Basic Authentication,Unirest" /> elasticsearch,python-requests,basic-authentication,unirest,Node.js,elasticsearch,Python Requests,Basic Authentication,Unirest" />

Node.js nodejs API基本身份验证的证书链中的自签名证书错误

Node.js nodejs API基本身份验证的证书链中的自签名证书错误,node.js,elasticsearch,python-requests,basic-authentication,unirest,Node.js,elasticsearch,Python Requests,Basic Authentication,Unirest,我正在尝试使用RESTAPI将数据添加到我的弹性搜索索引中,它在POSTMAN中运行良好。我还尝试了使用请求的python脚本,该脚本正在运行 但nodejs也同样失败。它正在给我证书链中的自签名证书错误 var unirest = require('unirest'); console.log("start"); var req = unirest('PUT', 'https://24.73.543.228:9001/accelerators/_doc/12') .he

我正在尝试使用RESTAPI将数据添加到我的弹性搜索索引中,它在POSTMAN中运行良好。我还尝试了使用请求的python脚本,该脚本正在运行

但nodejs也同样失败。它正在给我证书链中的自签名证书错误

var unirest = require('unirest');
console.log("start");
var req = unirest('PUT', 'https://24.73.543.228:9001/accelerators/_doc/12')
  .headers({
    'Content-Type': 'application/json',
    'Authorization': 'Basic ZWxhc3RpYzpQYXNzd29yZEAxcjdcMjM0='
  })
  .send(JSON.stringify({"name":"ajj","type":"test","description":"khukhkd","created_date":"2021-02-18T20:20:41.560Z"}))
  .end(function (res) { 
    if (res.error) throw new Error(res.error); 
    console.log(res.raw_body);
  });
这就是错误所在

Error: Error: self signed certificate in certificate chain
    at C:\Users\Desktop\test.js:10:26
    at Request.handleRequestResponse [as _callback] (C:\Users\node_modules\unirest\index.js:444:15)
    at self.callback (C:\Users\Bittu.Raju\node_modules\request\request.js:185:22)
    at Request.emit (events.js:315:20)
    at Request.onRequestError (C:\Users\Bittu.Raju\node_modules\request\request.js:877:8)
    at ClientRequest.emit (events.js:315:20)
    at TLSSocket.socketErrorListener (_http_client.js:426:9)
    at TLSSocket.emit (events.js:315:20)
    at emitErrorNT (internal/streams/destroy.js:92:8)
    at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
尝试了基本身份验证

auth = "Basic " + new Buffer(username + ":" + password).toString("base64");
并尝试在标头中使用auth变量,但仍然存在相同的错误

在Python请求中尝试了同样的方法,效果很好。如何让它在nodejs中工作

import requests
from requests.auth import HTTPBasicAuth
import json
url="https://24.73.543.228:9001/accelerators/_doc/12"
print(url)
payload=dataJson[i]
print(payload)
payload=json.dumps(payload)
print(type(payload))
headers = {
  'Content-Type': 'application/json',
}
response = requests.request("PUT", url, headers=headers, data=payload,auth=HTTPBasicAuth('usern', 'Password@123'),verify=False)
print(response.text)

由于您的证书是自签名的,您可以通过调用
strictSSL(false)
来尝试不验证它:

var req=unirest('PUT','https://24.73.543.228:9001/accelerators/_doc/12')
.ssl(假)
var req = unirest('PUT', 'https://24.73.543.228:9001/accelerators/_doc/12')
  .strictSSL(false)       <---- add this line
  .headers({
    'Content-Type': 'application/json',
    'Authorization': 'Basic ZWxhc3RpYzpQYXNzd29yZEAxcjdcMjM0='
  })
  .send(JSON.stringify({"name":"ajj","type":"test","description":"khukhkd","created_date":"2021-02-18T20:20:41.560Z"}))
  .end(function (res) { 
     ...