2016-09-18 92 views
1

尝试访问我使用NodeJS创建的HTTPS服务器时出现错误。使用Node.js创建HTTPS服务器

我该怎么做:

1.首先所有的:generate a self-signed certificate

openssl genrsa -out key.pem 
openssl req -new -key key.pem -out csr.pem 
openssl x509 -req -days 9999 -in csr.pem -signkey key.pem -out cert.pem 

2.创建简单的NodeJS HTTPS服务器 -

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

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

var app = function (req, res) { 
    res.writeHead(200); 
    res.end("hello world\n"); 
} 
https.createServer(httpsOptions, app).listen(server_port); 
  • 运行服务器:node main.js(文件名) 服务器正在运行,但是当我尝试访问时https://localhost:8080

  • 连接到服务器。其结果是:

  • enter image description here

    +1

    由于服务器是自签名,浏览器就会哭。您需要将证书添加到浏览器的信任存储区。 –

    +0

    @NehalJWani这是否仍然适用于生产服务器?我对自签名证书感到好奇 – sova

    +1

    @sova对于面向生产服务器的公众,您必须购买证书,或者从letsencrypt或startcom获得免费的证书。 –

    回答

    2

    尝试:

    openssl genrsa -out key.pem 1024

    openssl genrsa -out key.pem 2048

    的512密钥长度被认为是弱

    +0

    node raise'错误:侦听EADDRINUSE ::: xxxx'如果其他应用程序使用的端口 – hex7c0

    2

    这大概端口由另一个应用程序(例如Skype的)一起使用。尝试另一个端口。

    +0

    你说得对!你上面的那个人也.. – hcohen