我的golang网络服务器是否需要以root用户身份运行才能支持HTTPS/TLS?

mic*_*doe 3 ubuntu ssl https http go

我想使用golang的内置ListenAndServeTLS()函数来提供我的网络服务器(这是一个非常简单的),我需要将它显示在存储密钥的位置.密钥存储在只有root用户可以访问的位置(默认情况下,让我们加密),除非我是root用户,否则我无法侦听端口80或443.

这是否意味着我必须一直以root身份运行脚本?这不是不安全吗?

mil*_*ner 7

公然引用写得好的凯蒂常见问题:

在Linux上,您可以使用setcap为Caddy授予绑定到低端口的权限.有点像setcap cap_net_bind_service=+ep ./caddy 应该工作.请参阅操作系统的手册页以确定.您还可以使用iptables转发到更高端口.

特权降级是另一种选择,但它还不是一种可靠的解决方案.一旦这成为一种强大的可能性,它将立即实施.我们鼓励有关读者参与其中,以帮助实现这一目标.