【发布时间】:2016-10-02 15:17:21
【问题描述】:
【问题讨论】:
-
我也有这个问题,你找到解决办法了吗?
标签: node.js linux lets-encrypt
【问题讨论】:
标签: node.js linux lets-encrypt
好的,我找到了解决方案。
基本上,LetsEncrypt 在/etc/letsencrypt/live/ 和/etc/letsencrypt/archive/ 中生成证书文件。这两个文件夹的权限是744(“所有者可以读、写和执行;组和用户可以读”),但这还不够:你必须赋予读和执行的权限:
sudo chmod 755 /etc/letsencrypt/live/
sudo chmod 755 /etc/letsencrypt/archive/
出于安全原因,这当然不是一个好的解决方案,但它是我发现唯一可行的解决方案,而且肯定比以 root 身份运行 Node.js 服务器更好!
来源:https://groups.google.com/d/msg/node-red/g8cPmNgGnh0/guWq-8szBAAJ
【讨论】:
ssl-cert 的组作为默认密钥文件/etc/ssl/private/ssl-cert-snakeoil.key,这里也建议这样:stackoverflow.com/questions/38557213/… 但是密钥文件应具有 640 之类的权限(或 740 或 750 为您的示例),出于安全原因,您不应像您那样向所有用户授予读取权限。
您可以尝试su -i 或sudu su 或sudo -s 然后cd {DIR}。
【讨论】:
我遇到了类似的问题,如果您以 ubuntu 用户身份运行 nodejs(如果您在亚马逊 AWS 和 EC2 上),请不要在您的 let's encrypt 证书上设置 777 chmod。
您需要做的就是允许 ubuntu 用户访问它们。
sudo chown ubuntu -R /etc/letsencrypt
使用 ubuntu 用户运行的节点应用程序现在可以访问这些证书。您可以创建另一个用户并使用它运行 NodeJS 应用程序并允许访问证书(只读)
【讨论】: