SSL 密钥的权限?

Cho*_*per 18 linux ssl nginx openssl ssl-certificate

我正在尝试在 nginx 中设置安全连接 (https)。

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

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

cpa*_*ast 19

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

  • 为了具体起见,我要补充一点:在 CentOS 7 上使用 nginx 时,不需要让 `nginx` 组中的人可以读取证书或私钥。网络服务器将能够使用它们,即使它们只能由“root”读取(它们应该如此)。 (3认同)

Cam*_*ind 7

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

通常,nginx 通过 init scripts / systemd 作为用户启动root。不过,nginx 也有能力切换到权限较低的用户进行正常操作。所以我的问题是哪个用户用于加载 ssl 证书/密钥?最初的特权用户还是切换到的特权用户?

幸运的是,nginx 在切换用户之前使用初始权限将证书和密钥读取到内存中。因此,通常情况下,您确实可以对密钥保留非常有限的权限,因为它们是在 nginx 仍以root.


我遇到的问题是我ssl_certificateservernginx.conf. [error] 18606#18606: *311 no "ssl_certificate" is defined in server listening on SSL port while SSL handshaking当我非常清楚地知道我的钥匙在正确的位置时,我遇到了错误。那个问题是我没有达到的ssl_certificate水平。httpnginx.conf

希望这对某人有帮助。