node.js上的服务器HTTPS不';行不通

node.js上的服务器HTTPS不';行不通,node.js,ssl,https,Node.js,Ssl,Https,我正在尝试创建一个HTTPS服务器。我已按照以下说明使用Cygwin64生成privatekey.pem和certicate.pem: openssl genrsa -out privatekey.pem 1024 openssl req -new -key privatekey.pem -out certrequest.csr openssl x509 -req -in certrequest.csr -signkey privatekey.pem -out certificate.pem

我正在尝试创建一个HTTPS服务器。我已按照以下说明使用Cygwin64生成privatekey.pem和certicate.pem:

openssl genrsa -out privatekey.pem 1024
openssl req -new -key privatekey.pem -out certrequest.csr
openssl x509 -req -in certrequest.csr -signkey privatekey.pem -out certificate.pem
而我的服务器代码是:

var https = require('https');
var fs = require('fs');

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

https.createServer(options, function (req, res) {
  res.writeHead(200);
  res.end("hello world\n");
}).listen(8001);

当我尝试连接到地址
https://localhost:8001
,该网页不可用。有人能帮我吗?

你的代码运行得非常好。我已经在本地主机上测试了它。我认为问题在于你的关键一代。尝试再次生成密钥并运行服务器。我希望它能起作用

注意:您正在生成的证书将仅在localhost中工作。因此,不要在任何在线IDE(如codio.com、koding.com、cloud9.com等)中尝试此功能。如果您想这样做,您必须从Verysign等公司购买SSL证书。

或 如果没有,请尝试下面的代码

步骤1:打开终端并运行以下命令生成私钥文件'key.pem'

$ openssl genrsa 1024 > key.pem
$ openssl req -x509 -new -key key.pem > key-cert.pem
步骤2:现在运行以下命令以生成SSL证书文件'key-cert.pem'

$ openssl genrsa 1024 > key.pem
$ openssl req -x509 -new -key key.pem > key-cert.pem
第3步:现在用以下内容编写'server.js'文件

var https = require('https');
var fs = require('fs');

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

https.createServer(options, function (req, res) {
  res.writeHead(200);
  res.end("hello world\n");
}).listen(8001);
步骤4:现在使用以下命令运行服务器文件

$ node server.js

步骤5:现在在浏览器中点击url
'https://localhost:8001“
并接受证书,您将在页面上看到“hello world”消息。

您可以尝试异步检索pem文件的内容吗?如果您添加一个
listening
处理程序,会执行吗?:
。listen(8001,function(){console.log('listing on port 8001!');})
现在可以使用单个命令
openssl req-newkey rsa:2048-nodes-keyout key.pem-x509-days 365-out certificate.pem