SSL 密钥的权限?

SSL 密钥的权限?

我正在尝试在 nginx 中建立安全连接(https)。

但我有点担心私钥的权限,任何教程中都没有提到。

我应该改变它们吗?改变成什么?

答案1

私钥应该严格限制读取。将权限设置为600和 所有者root应该可以工作。但是,还有其他安全权限设置 - Ubuntu 将密钥存储在具有 所有者root和 组ssl-cert以及 权限 的目录中710。这意味着只有 的成员ssl-cert才能访问该目录中的任何文件。然后私钥具有 组ssl-cert、 所有者root和 权限640

答案2

我在设置 nginx 时遇到了问题,然后遇到了这个问题。这里的其他答案已经直接回答了这个问题,但我认为多一点信息会有所帮助。

通常,nginx 由 init 脚本/systemd 以用户身份启动root。但是,nginx 还能够切换到较低权限的用户以执行正常操作。所以我的问题是哪个用户用于加载 ssl 证书/密钥?初始特权用户还是切换到的用户?

幸运的是,nginx 在切换用户之前会使用初始权限将证书和密钥读入内存。因此,通常情况下,您确实可以将密钥保留在非常受限的权限下,因为它们是在 nginx 仍以 身份运行时加载的root


我遇到的问题是,我ssl_certificate仅在server中的块中定义nginx.conf。我遇到了错误,就像[error] 18606#18606: *311 no "ssl_certificate" is defined in server listening on SSL port while SSL handshaking我非常清楚我的键在正确的位置一样。问题是我没有ssl_certificate级别httpnginx.conf

希望这对某人有帮助。

相关内容