我必须configuration一些Web服务器来使用HTTPS,我不会考虑任何“高安全性”,但我想至less涵盖基本的安全最佳实践。
我想知道我应该在哪里存储Web服务器需要支持HTTPS的私钥,以及如何处理访问权限? 从我读取的私钥无密码和根据文件权限是一个不需要高安全性的Web服务器的标准。 然而,对于任何Web服务器来说,最可能的折衷scheme是服务器本身的一个漏洞,导致任何人访问已经拥有对我的密钥的读取权限的方框。 有什么简单的方法来减less这种威胁?
我也不确定在哪里把重点放在对公约的重要性上。 它看起来像/ etc / pki是我应该把我的密钥,但我不知道在该目录中私人/公共密钥通常存储在哪里,我不明白它的目录布局。 我已经读过关于存储在/ etc / pki / private中的私钥,但是默认情况下直接不存在,这使我怀疑约定是否在其他地方创build目录或存储密钥。 更重要的是我读的也说/ etc / pki / private应该只能被root读取,但是我的web服务器不会以root身份运行,所以要么我需要在其他地方存储私钥,要么打开/ etc / pki /私人到我的networking服务器。
您的Web服务器的主进程通常以root用户身份运行,包括读取SSL私钥,因此将其放在只有root用户可以读取的地方就足够了。 如果你的服务器被破坏了,你将会重新键入你的SSL证书,而且你比MITMing有更大的问题。
位置根本不重要(只要前面提到的权限已经到位),所以放在任何对你有意义的地方。 可能不是/tmp ,但是我的个人偏好是在/etc web服务器的config目录下的一个名为keys或ssl的文件夹。
在CentOS的现代版本中,私钥的普通目录是/etc/pki/tls/private/ ,它不应该拥有除root以外的任何权限。 相应的公钥应该存储在/etc/pki/tls/certs 。
启用SELinux或AppArmor或某些其他MAC(强制访问控制),如果您愿意,应该有助于防止任何Web漏洞访问您的私钥。
当然,没有什么能够阻止你将它们存储在其他地方,但是如果你使用的话,你需要手动设置MAC ACL。