Node.js HTTPS服务器在使用RapidSSL证书时没有响应

时间:2014-11-08 19:55:51

标签: node.js ssl amazon-web-services https amazon-ec2

我正在尝试在Amazon EC2上运行我的Node.js应用程序使用SSL和HTTPS。我已通过Name.com购买了RapidSSL证书,并按照this StackOverflow answer上的说明正确设置了HTTPS服务器。这是相关的代码:

var http = require('http'),
  https = require('https');
var express = require("express"),
  app = express();
var fs = require('fs');

...
app.set('certificate', fs.readFileSync('/path/to/cert.pem', 'utf8'));
app.set('privateKey', fs.readFileSync('/path/to/privateKey.pem', 'utf8'));
...

http.createServer(app).listen(app.get('port'), function() {
  console.info('Listening on port %d', app.get('port'));
});
var options = {key: app.get('privateKey'), cert: app.get('certificate')};
https.createServer(options, app).listen(app.get('sslPort'), function() {
  console.info('HTTPS listening on port %d', app.get('sslPort'));
});

当我使用自签名证书在本地运行服务器时,忽略安全警告后一切都正常。但是,当我将代码部署到EC2实例时,程序运行时不会出错,但是当我使用HTTPS转到域时,服务器不返回任何内容,浏览器超时。使用HTTP请求站点仍然可以正常工作。

我在Chrome以及cURL中都尝试过这种方法。证书是为www子域发布的,但根据Name.com,它也应该与根域一起使用。我尝试在子域和根域上查询网站,达到同样的效果。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:4)

事实证明,我不允许来自EC2仪表板中安全组中端口443的传入流量。允许0.0.0.0/0使SSL工作。我刚才解决了这个问题,但忘记了这个问题,所以这里是其他人的答案。