在少数 Apache 服务器运行大量使用 SSL 证书进行 HTTPS 的站点的环境中,这些证书应该放在哪里?在 Debian 或 Ubuntu 中,所有相关文件是否都应放在 /etc/apache2/ssl 中?或者是否有其他更适合的位置?在同一台服务器上为多个网站选择这些文件的位置时,应解决哪些安全问题?
答案1
仅供参考,我使用 Debian。
我将所有私钥放在/etc/ssl/private
具有权限模式的中0700
。 我将所有证书放在/etc/ssl/certs
具有权限模式的中0755
。 两者的所有者/组都是 root:root。
答案2
基本上,您的 SSL 密钥文件应该只能由用户读取root
(您应该对其发出两个命令:sudo chown root:root /path/to/your/keyfile.key
和sudo chmod 600 /path/to/your/keyfile.key
)。您的证书文件可以是全世界可读的。并且,将密钥和证书放在可通过 Web 访问的文档树之外始终是一个好主意,/etc/apache/ssl
应该会很好用。
答案3
对于我来说,以下放置 SSL 证书的最佳实践通常非常有效:
/usr/share/ca-certificates/domainname/
*.crt
-将从 CA 机构获取的公开文件放在此处/etc/ssl/certs
/usr/share/ca-certificates/domainname/
- 创建指向目录中文件的符号链接/etc/ssl/private/private.key
- 私钥直接放入此目录中/opt/ssl/csr/domainname/domain.csr
- 我将原始 CSR 放在此目录中以供将来参考。
如果您计划将 SSL 证书用于 Dovecot 和 Postfix 等服务,您还需要这些*.pem
文件。您可以将这些转换后的*.pem
文件放入目录/opt/ssl/csr/domainname/*.pem
中,并创建指向它们的软链接/etc/ssl/certs
。