【问题标题】:Node.js HTTPS server not responding when using RapidSSL certificate使用 RapidSSL 证书时 Node.js HTTPS 服务器没有响应
【发布时间】:2015-01-05 10:28:57
【问题描述】:

我正在尝试将 SSL 和 HTTPS 与我在 Amazon EC2 上运行的 Node.js 应用程序一起使用。我通过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,它也应该适用于根域。我尝试在子域和根域上查询站点,效果相同。

提前感谢您的帮助。

【问题讨论】:

  • 我不认为它会破坏事情,但你不需要在那些readFileSync 电话上使用, 'utf8'
  • 在EC2服务器上,证书和密钥是否位于指定位置?对于 EB 服务器,这可能是个问题

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-20
    • 1970-01-01
    • 2013-11-09
    • 2018-04-13
    • 2020-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多