2016-02-01 96 views
18

我使用npm包「http-server」(https://www.npmjs.com/package/http-server)來建立一個簡單的網絡服務器,但是我無法使用它來使用SSL。我在package.json中的命令是npm帶SSL的http服務器

http-server -p 8000 -o -S 

在我的根目錄(現在)中有cert.pem和key.pem。 「-o」選項打開瀏覽器到默認頁面,但該頁面使用HTTP提供,甚至不能通過HTTPS訪問。我沒有收到任何錯誤或警告。我也嘗試添加「-C」和「-K」選項,但沒有運氣。這個軟件包有沒有成功?

+1

[有用的指南](https://docs.nodejitsu.com/articles/HTTP/servers/how-to-create-a-HTTPS-server/) – Abhijeet

回答

1

只是以供將來參考,我的問題是由包進行更新,以在封裝的最新版本解決。 JSON。我複製粘貼一箇舊的示例文件,而不更新版本號。

45

首先,確保您有key.pemcert.pem文件。您可以使用此命令生成它們:

openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem 

這會生成證書密鑰對,它的有效期爲大約10年(3650天是精確的)。

然後,你需要用-S運行服務器啓用SSL和-C爲您的證書文件:

$ http-server -S -C cert.pem -o 
Starting up http-server, serving ./ through https 
Available on: 
    https:127.0.0.1:8080 
    https:192.168.1.101:8080 
    https:192.168.1.104:8080 
Hit CTRL-C to stop the server 
+1

看來我的軟件包只是需要更新。在嘗試了所有內容之後,我看到我正在運行一箇舊版本... – delucasvb

+0

無論我正在運行哪個應用程序或示例代碼,我如何獲得這個使用來自本地機器的相同密鑰和pem文件? – Costa

+0

順便說一句,如果你需要一個來自CA的證書我推薦使用https://letsencrypt.org/。它解決了我們的問題。乾杯! – pinkfloyd