通过 HTTPS 为应用程序提供服务的 Node.js 服务器是否可以以非 root 用户身份运行?问题是似乎没有办法运行类似这样的脚本这不需要 sudo,因为它必须访问证书。
我知道在启动 Node 后可以放弃 root 权限,但如果可能的话我想避免这种情况,因为它可能会导致一些意外行为。
答案1
证书问题很容易解决,只需将其分配给您的用户并相应地调整权限即可。
但是您会发现,您无法让您的服务器监听 HTTPS 端口 443,因为它是一个特权端口(<1024)。
您可以通过多种方式解决此问题,例如:
前端的反向代理(Apache / nginx)将请求转发到监听更高端口的nodejs
端口转发 443 -> 1443(或任何高于 1024 的端口)并且 nodejs 在 1443 上监听
使用 Linux 功能(CAP_NET_ADMIN IIRC)。
可能还有其他方法。