如何访问我的 TLS/HTTPS 密钥以启动 ListenAndServeTLS?

How do I access my TLS/HTTPS keys in order to start ListenAndServeTLS?

我的服务器使用 Let's Encrypt 获取其 TLS 证书以通过 HTTPS 提供服务。

我选择在 Apache 或 nginx 上使用标准 net/http 包,所以我使用了 webroot 安装方法,并将证书文件放在 /etc/letsencrypt/live/mysite 中。

问题是 live 目录只能由 root 用户访问。我的 golang 程序需要此目录中的证书才能通过 HTTPS 运行和服务。

然而,出于显而易见的原因,我没有运行以 root 用户身份运行我的程序。

所以这让我想知道:我如何访问这些文件而不必不安全地 运行 我的 Web 服务器永久作为 root 用户?

你有几个选择:

  • sudo chown -R your-user /etc/letsencrypt/live/mysite

  • sudo cp -a /etc/letsencrypt/live/mysite ./ssl/ && sudo chown -R your-user ./ssl/

  • 为您的应用程序使用一个容器,并将您的应用程序和证书复制到其中,因为它将 运行 作为容器内的根目录,所以这无关紧要。