将服务器更改为https后,Nodejs Express 4路由无法正常工作

时间:2016-01-08 17:48:01

标签: angularjs node.js ssl express https

我正在为我的项目使用平均堆栈(angular v1.4.7,node v0.12.7,express 4.9.0)。

最近,我要求ssl证书并将其安装在服务器上,因此我不得不将我的http请求更改为https。

我还将nodejs服务器更改为需要https而不是http,但快速路由停止工作,并且每个请求都返回 net :: ERR_CONNECTION_CLOSED 。以下是一些例子:

对angularjs的请求:

$http({
    url: "https://www.urbs.pt:3000/auth/isauth",
    method: "GET",
    withCredentials: true
}).success(function (data, status, headers, config) {

    $scope.isloggedin = data;

}).error(function (data, status, headers, config) {
    console.log(data);
    console.log(status);
    console.log(headers);
    console.log(config);
});

我使用https

在端口3000上使用express运行我的nodejs服务器
var authenticate = require('./routes/authenticate');

var options = {
  key:    fs.readFileSync(pathtokey),
  cert:   fs.readFileSync(pathtocertificate),
  ca:     fs.readFileSync(pathtoCA),
  requestCert:        true,
  rejectUnauthorized: false
};

var app = express();
var https = require('https').Server(options,app);

/* this part is initialized on bin/www
app.set('port', process.env.PORT || 3000);

var server = app.listen(app.get('port'), function() {
  debug('Express server listening on port ' + server.address().port);
});
*/  

app.use('/auth', authenticate);

如果我在angularjs请求上使用http协议,并且在nodejs上需要http,一切都按预期工作,所以我猜问题是https请求。我还确认选项配置是正确的。

0 个答案:

没有答案