Linux 上 SSL 证书存放在哪里?

Linux SSL 证书常见存放位置:系统 CA 在 /etc/ssl/certs,私钥在 /etc/ssl/private,Let's Encrypt 在 /etc/letsencrypt/live/;各发行版差异、查找命令与权限要求、FAQ。

最佳实践
Linux 上 SSL 证书存放在哪里?封面

系统信任的 CA 证书在 /etc/ssl/certs/(Debian/Ubuntu)或 /etc/pki/tls/certs/(RHEL/CentOS);应用自用的服务器证书和私钥约定放在 /etc/ssl//etc/pki/tls/ 下;Let's Encrypt 证书固定在 /etc/letsencrypt/live/域名/ 实际以各服务配置里写的路径为准。

常见位置速查

用途 Debian/Ubuntu RHEL/CentOS/Fedora
系统 CA 根证书 /etc/ssl/certs/ /etc/pki/tls/certs/
私钥 /etc/ssl/private/ /etc/pki/tls/private/
应用证书(惯例) /etc/ssl/certs/ /etc/pki/tls/certs/
Let's Encrypt /etc/letsencrypt/live/<域名>/ 同左
Nginx 自管(部分镜像) /etc/nginx/ssl/ 同左

Let's Encrypt 目录里的四个文件:

  • fullchain.pem:证书 + 中间链(Nginx 的 ssl_certificate 用它
  • privkey.pem:私钥(ssl_certificate_key 用它)
  • cert.pem / chain.pem:单证书 / 仅中间链

快速定位法

不知道证书在哪时,与其翻目录不如问服务本身:

# 看 Nginx/Apache 配置里写的路径
nginx -T | grep ssl_certificate
grep -r "SSLCertificateFile" /etc/apache2/

# 全盘按文件名找
sudo find / -name "*.pem" -o -name "*.crt" 2>/dev/null | head -30

权限要求(重要)

  • 私钥必须严格chmod 600root:root——权限太松,部分服务(OpenSSH 风格的检查)会直接拒绝使用,Nginx 虽宽松但这是底线卫生。
  • /etc/ssl/private/ 目录本身默认 710 root:ssl-cert
  • 证书公钥部分(.crt/.pem)权限 644 即可,本来就是要发给别人看的。

观测云对照

证书散落各处带来的最大风险是"某张证书默默过期"。与其人肉巡检各目录,不如让监控盯效果:观测云的站点可用性监测直接探测 HTTPS 端点,证书剩余天数、握手失败都会成为可告警的信号;certbot 续期日志(/var/log/letsencrypt/)采集后,续期失败第一时间通知到人。

常见问题(FAQ)

Q:.pem、.crt、.key、.cer 后缀有区别吗?
A:基本是约定俗成:.pem/.crt/.cer 都可能是证书(PEM 或 DER 编码),.key 是私钥。用 openssl x509 -in 文件 -text -noout 验证是不是证书、看内容。

Q:证书放哪个目录其实无所谓吗?
A:功能上无所谓——服务读的是配置里写的绝对路径。但遵循发行版约定能让团队协作、备份策略、SELinux 策略都更顺。

Q:私钥泄露过怎么办?
A:立即吊销并重签证书(Let's Encrypt 直接重签即可),不要抱侥幸心理;同时排查泄露途径(备份外泄、权限过松、误提交到 Git 是三大高发渠道)。

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台