1

我刚刚将我的服务器更改为使用 HTTPS。我有一个非常样板的代码。当我转到 localhost:8888 时,浏览器挂起,我的路由永远不会被调用。命令行中的卷曲是相同的。

我想知道我错误地定义了我的路线。代码如下:

var express = require('express');
var routes = require('./routes');
var user = require('./routes/user');        

var https = require('https');
var path = require('path');
var app = express();
var fs = require('fs');



// all environments
app.set('port', process.env.PORT || 8888);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.cookieParser());
app.use(express.methodOverride());
app.use(app.router);

//app.use(logErrors);

app.use(express.static(path.join(__dirname, 'public')));


var options = { 
        key: fs.readFileSync('key.pem'), 
        cert: fs.readFileSync('cert.pem')};




app.get('/', routes.index);
app.get('/users', user.list);


https.createServer(options, app.handle).listen(app.get('port'), function(){
  console.log('Express server listening on port ' + app.get('port'));
});

任何人都看到问题是什么?

4

2 回答 2

1

你需要去https://localhost:8888

浏览器无法自动确定您正在该端口上侦听 SSL 连接。

于 2013-10-25T21:11:20.727 回答
1

我想你只想要app你拥有的地方app.handle

https.createServer(options, app)....

另请注意,您需要进行 cURL 测试,curl --insecure https://localhost:8888因为您可能使用的是非商业自签名证书,如果没有用户显式覆盖,curl 和浏览器都不会信任该证书。

于 2013-10-25T22:00:04.620 回答