GCP上的golang =>监听tcp:443:绑定:权限被拒绝

时间:2019-02-14 12:21:19

标签: go https google-cloud-platform lets-encrypt

我在尝试使用golang +加密在Google Cloud Platform上设置https时遇到问题

  • 我已经有一个针对实例IP的域

  • 我还让我们加密了证书和保存在/etc/letsencrypt/live/mydomain.com /

  • 上的链
  • 我已经将myapp设置为使用证书,并配置为通过systemctl使用myapp.service作为服务运行

在完成所有这些配置之后,我总是收到下一条错误消息:


Feb 14 11:29:47 https https[1982]: 2019/02/14 11:29:47 listen tcp :443: bind: permission denied
Feb 14 11:29:47 https systemd[1]: https.service: Main process exited, code=exited, status=1/FAILURE
Feb 14 11:29:47 https systemd[1]: https.service: Unit entered failed state.
Feb 14 11:29:47 https systemd[1]: https.service: Failed with result 'exit-code'.

3 个答案:

答案 0 :(得分:5)

如果要绑定到privileged port(端口小于1024)。您要么需要root要么具备CAP_NET_BIND_SERVICE的能力。

答案 1 :(得分:0)

好吧,我只是想查找有关CAP_NET_BIND_SERVICE的更多信息,所以我在另一篇文章中找到了Scott Stensland的答案:

https://unix.stackexchange.com/questions/455221/setcap-not-found-in-debian-9/455234#455234

现在看起来很固定...谢谢

但是现在我有一个“打开/etc/letsencrypt/live/mydomain.com/cert.pem:权限被拒绝”错误:\(正在寻找其他正在进行的解决方案...)

答案 2 :(得分:0)

使用 iptables 进行端口重定向。通过flappysocks查看这个答案 https://stackoverflow.com/a/1762807/1100242