带有 SSL 的 npm http-server

新手上路,请多包涵

我正在使用 npm 包“http-server”( https://www.npmjs.com/package/http-server )来设置一个简单的网络服务器,但我无法让它使用 SSL。我在 package.json 中的命令是

http-server -p 8000 -o -S

在我的根目录中有一个 cert.pem 和 key.pem(现在)。 “-o”选项将浏览器打开到默认页面,但该页面使用 HTTP 提供,甚至无法通过 HTTPS 访问。我没有收到任何错误或警告。我还尝试添加“-C”和“-K”选项,但没有运气。有人用这个包成功过吗?

原文由 delucasvb 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 765
2 个回答

只是为了将来参考,我的问题是通过将包更新到 package.json 中的最新版本来解决的。我复制粘贴了一个旧的示例文件而不更新版本号。

原文由 delucasvb 发布,翻译遵循 CC BY-SA 3.0 许可协议

首先,确保您有 key.pemcert.pem 文件。您可以使用以下命令生成它们:

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

输入命令后,系统会提示您几个问题。使用 127.0.0.1 作为“Common name”的值,如果您希望能够在操作系统的根证书存储或浏览器中安装证书以使其受信任。

这会生成一个证书密钥对,有效期大约为 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

原文由 slomek 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题