Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.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中的第一个证书_Node.js_Express_Ssl_Request_Ssl Certificate - Fatal编程技术网

无法验证Node.js中的第一个证书

无法验证Node.js中的第一个证书,node.js,express,ssl,request,ssl-certificate,Node.js,Express,Ssl,Request,Ssl Certificate,我有一个nodejsapi,它使用ssl和https,所以我尝试在另一台服务器上使用它来使用expressjs构建一个web应用程序 我在发出GET请求时收到以下错误: events.js:141 throw er; // Unhandled 'error' event ^ Error: unable to verify the first certificate at Error (native) at TLSSocket.<anonymous&

我有一个nodejsapi,它使用ssl和https,所以我尝试在另一台服务器上使用它来使用expressjs构建一个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)
以及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);

任何关于此错误发生原因的建议都将受到高度赞赏

我通过使用另一个名为“request”的包来解决这个问题,也别忘了添加

process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";

在调用API之前。

您找到解决方案了吗?我对aws sdkHad也有同样的问题,一个类似的问题是试图在我的开发机器上通过http访问google+api,而我的生产服务器使用https。这是非常不安全的。更好的选择请参见这里的答案:谢谢@LouisK,我知道这不安全,但只是为了测试。
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";