如何禁止与 http-server npm 的不安全连接?

Posted

技术标签:

【中文标题】如何禁止与 http-server npm 的不安全连接?【英文标题】:how to disallow insecure connection to http-server npm? 【发布时间】:2020-12-10 01:37:10 【问题描述】:

我正在使用以下命令来创建安全的 http-server,

http-server -a :: -p 8081 --cors -c-1 -S -C cert.pem -K key.pem -r

但是通过以下命令我可以访问内容,

curl -k https://localhost:8081/

如何限制用户不允许与 http-server 的不安全连接? 我只想允许验证证书的连接,不允许其他连接。

PS:这里我已经使用 npm install http-server 安装了 http-server。

【问题讨论】:

【参考方案1】:

这取决于您所说的“不安全”。

curl -k https://localhost:8081/ 将打开一个安全 HTTPS 连接,流量被加密。 -k 唯一做的事情是允许连接到默认情况下您不信任的证书(通常这意味着它没有由您的系统/浏览器识别的 CA 签名)。

自签名证书没有任何问题。

您对 CA 的信任是额外的一层,它可以帮助您意识到某些地方出了问题,但仅此而已。

因为这是一个正确的 HTTPS 连接,所以你不能限制任何东西(我什至不确定你想限制什么?哪个元素会拒绝连接?curl 默认情况下已经这样做了,服务器对其感到满意证书)


编辑以下评论

如果您想确保正在连接的客户端是正确的,那么您需要反过来向您的客户端请求证书。

在此设置中,您将(通常)进行相互身份验证:客户端检查服务器的证书(在您的情况下失败,因为 CA 未被识别但没关系)并且服务器要求客户端提供服务器信任的证书。

尝试搜索“SSL 客户端证书”(尽管 TLS 取代了 SSL,但很多文章仍然使用 SSL 措辞),例如https://medium.com/@sevcsik/authentication-using-https-client-certificates-3c9d270e8326

【讨论】:

我要允许验证证书的连接,不允许其他连接 @HarshilMakwana:请检查我的答案更新(如果我理解正确你的目标)

以上是关于如何禁止与 http-server npm 的不安全连接?的主要内容,如果未能解决你的问题,请参考以下文章

虚拟服务器http-server禁止浏览器缓存

NPM搭建服静态务器 http-server

npm http-server 下载 index.html 而不是服务

POST 方法在 npm http-server 上抛出错误 405

node.js的安装以及http-server

通过终端提供 npm http-server 时出错。 (错误 404)