我正在尝试在 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
级别http
的nginx.conf
。
希望这对某人有帮助。