在Amazon EC2上运行简单的HTTPS Node JS服务器

uni*_*der 6 ssl amazon-ec2 amazon-web-services node.js

我正在尝试在Amazon EC2上创建一个简单的https服务器以测试第三方API。

这是我遵循的步骤:

  1. 创建一个Amazon EC2实例,并打开HTTP和HTTPS端口:

在此处输入图片说明

  1. 使用创建了简单的SSL凭证

openssl genrsa 2048> privatekey.pem

openssl req-新-key privatekey.pem -out csr.pem

openssl x509 -req -days 365 -in csr.pem -signkey privatekey.pem -out server.crt

  1. 创建一个简单的节点js服务器
var https = require('https');
var fs = require('fs');
var options = {
  key: fs.readFileSync('./privatekey.pem'),
  cert: fs.readFileSync('./server.crt')
};

https.createServer(options, function (req, res) {
  res.writeHead(200);
  res.end("hello world\n");
}).listen(8080);
Run Code Online (Sandbox Code Playgroud)

当我运行服务器并尝试使用URL https://ec2-XX-XXX-XXX-XXX.compute-1.amazonaws.com/连接到服务器时,我一直拒绝连接。

telnet测试还会产生:

Trying XX.XXX.XXX.XXX...
telnet: connect to address XX.XXX.XXX.XXX: Connection refused
telnet: Unable to connect to remote host
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我在此EC2实例上启用https时需要解决的问题吗?

Fré*_*nri 4

除非您有一个 Web 服务器正在侦听 443 并向 8080 上的节点发送请求,否则请更改为listen(8080)listen(443)