2016-09-18 88 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