无法validationNode.js中的第一个证书

我有一个Nodejs API,它使用ssl和https,所以我试图在不同的服务器上使用Express-js构build一个web应用程序。

进行GET请求时收到以下错误:

events.js:141 throw er; // Unhandled 'error' event ^ Error: unable to verify the first certificate at Error (native) at TLSSocket.<anonymous> (_tls_wrap.js:1017:38) at emitNone (events.js:67:13) at TLSSocket.emit (events.js:166:7) at TLSSocket._init.ssl.onclienthello.ssl.oncertcb.TLSSocket._finishInit (_tls_wrap.js:582:8) at TLSWrap.ssl.onclienthello.ssl.oncertcb.ssl.onnewsession.ssl.onhandshakedone (_tls_wrap.js:424:38) 

我试过以下,没有成功:

  • 添加require('ssl-root-cas').inject(); 并在请求中rejectUnauthorized: false,

  • 添加process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; 在我的主文件,这给了我一个Error: socket hang up

请求码:

 var service_bus = require('service_bus'); var error_engine = require('error_engine'); exports.get = function(call_back){ function request_service() { require('ssl-root-cas').inject(); var end_point = { host: "www.xxxx.com", port: "4433", path: "/api/xxx/xx/", method: "GET", headers: { "Content-Type": "application/json", "X-app-key": "xxxxxxxxxxxxxxxxxxxxxxxxxx" }, is_ssl: true }; service_bus.call(end_point, {}, function (error, result) { console.log(error); if (!error) { return call_back(result); } else { return call_back(error_engine.get_error_by_code('1500', '')); } }); } request_service(); }; 

和Web应用程序的主要文件:

 var express = require('express'); var exphbs = require('express-handlebars'); var path = require('path'); var passport = require('passport'); var session = require('express-session'); var uuid = require("node-uuid"); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); var mongoose = require('mongoose'); var app = express(); app.engine('handlebars', exphbs({defaultLayout: 'main'})); app.set('view engine', 'handlebars'); app.use(cors()); app.use(express.static(__dirname + '/public')); app.use('img',express.static(path.join(__dirname, 'public/images'))); app.use('js',express.static(path.join(__dirname, 'public/js'))); app.use('css',express.static(path.join(__dirname, 'public/css'))); app.use('fonts',express.static(path.join(__dirname, 'public/fonts'))); //app.use(exphbs.registerHelper('paginate', paginate)); app.use(cookieParser()); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); app.use(passport.initialize()); app.use(passport.session()); app.use(session({ proxy: true, resave: true, saveUninitialized: true, uuid: function(req) { return uuid() }, secret: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' })); require("./xxxxxxx/endpoints")(app); require("./xxxxxxxx/endpoints")(app); require("./xxxxxxxx/endpoints")(app, passport); mongoose.connect("mongodb://localhost/database"); app.listen(8080); 

任何build议,为什么会出现这个错误是高度赞赏。

我通过使用另一个叫“请求”的包来解决这个问题,也不要忘了添加

 process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; 

在调用API之前。