apache 不自带默认 certs 目录,推荐创建 /etc/ssl/certs/(755,存证书)和 /etc/ssl/private/(700,存私钥),属主 root:root,严禁放于 web 可访问路径。

Apache 本身不自带默认的 certs 目录,这个目录是运维人员根据安全规范自行创建并约定俗成的路径,不是 Apache 安装时自动建立的。关键不在于“默认”,而在于“规范”——即符合权限最小化、路径可访问、逻辑清晰三大原则。
certs 目录该放在哪
- 推荐路径:
/etc/ssl/certs/(证书)和/etc/ssl/private/(私钥)
这是 Debian/Ubuntu 和多数 Linux 发行版的通用惯例,被 Certbot、systemd、logrotate 等工具识别,也便于统一审计。 - 不推荐路径:
-
/var/www/xxx/certs/—— 属于 Web 可访问范围,存在意外暴露风险 -
/opt/apache/certs/—— 路径分散,缺乏标准性,权限管理易出错 - Apache 安装目录下的
conf/cert/或cert/—— 权限难隔离,且重启后可能被覆盖或忽略
-
怎么建才合规
-
创建命令示例(以 root 执行):
mkdir -p /etc/ssl/certs /etc/ssl/private
-
目录权限必须严格:
-
/etc/ssl/certs/→755(drwxr-xr-x)
Apache 进程需有x(进入)和r(读取)权限,但不能写 -
/etc/ssl/private/→700(drwx------)
仅 root 可进、可列、可读写;Apache 启动时由 root 加载私钥,之后降权,不依赖运行用户直接读取
-
属主统一设为
root:root,避免用www-data或普通用户作为属主
私钥文件后续设600,证书文件设644,都基于此属主生效
文件怎么放才合理
- 证书类(公开内容,可读不可改):
- 域名证书:
/etc/ssl/certs/example.com.crt - 中间证书链:
/etc/ssl/certs/example.com.chain.pem或ca-bundle.crt
- 域名证书:
- 私钥类(最高敏感):
- 私钥文件:
/etc/ssl/private/example.com.key(权限600)
- 私钥文件:
-
禁止混放:不要把
.key放进/etc/ssl/certs/,也不要让.crt和.key在同一目录下
验证是否建对了
-
检查路径连贯性:
Apache Superset Dashboard and SQL Exploration Skill下载Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
namei -l /etc/ssl/private/example.com.key
确保每一级目录都有
x权限(尤其/etc、/etc/ssl、/etc/ssl/private),且无777或775等宽松权限。 -
模拟 Apache 用户访问:
sudo -u www-data ls /etc/ssl/certs/ # 应成功列出 sudo -u www-data cat /etc/ssl/private/*.key # 应提示 Permission denied
不复杂但容易忽略










