一、根本原因:/etc/ssl/certs 是一个符号链接
在很多 Linux 系统上(尤其是 RHEL / CentOS / Rocky / Alma / Oracle Linux 系列):
/etc/ssl/certs -> /etc/pki/tls/certs
也就是说:
/etc/ssl/certs 并不是一个真实目录,它只是一个“快捷方式”
真正存放证书的地方是:/etc/pki/tls/certs
所以你在 shell 里:
cd /etc/ssl/certs
pwd
看到变成:
/etc/pki/tls/certs
这是 shell 显示了真实路径,不是被“重定向”了。
二、为什么要这么设计?
历史原因(发行版标准不同)
Debian / Ubuntu 系
传统路径:/etc/ssl/certs
Red Hat 系
传统路径:/etc/pki/tls/certs
但很多软件(OpenSSL、curl、git、Java、Python 等)默认写死使用 /etc/ssl/certs
为了兼容这些软件,Red Hat 系就:
- 保留 /etc/pki/tls/certs 作为真实目录
- 用 /etc/ssl/certs 做一个 symlink
这样 软件不用改,系统也能统一管理证书
三、怎么确认这是符号链接?
你可以直接看:
ls -ld /etc/ssl/certs
输出一般类似:
lrwxrwxrwx 1 root root 25 Jan 10 10:00 /etc/ssl/certs -> /etc/pki/tls/certs
关键点:
l 开头 → symbolic link
-> 后面是真实路径
四、这对你有什么影响?
✅ 基本没有负面影响
访问 /etc/ssl/certs ✔
访问 /etc/pki/tls/certs ✔
内容是同一份
⚠️ 需要注意的点
脚本里硬编码路径时
推荐用 /etc/ssl/certs(通用性更好)
容器 / 跨发行版部署
不同系统证书路径可能不同
某些程序会读取真实路径
pwd -P 会显示物理路径
五、快速总结(重点版)
这是 符号链接,不是自动跳转
/etc/ssl/certs → /etc/pki/tls/certs
常见于 CentOS / RHEL 系
目的是 兼容软件 + 统一证书管理
完全正常,不需要处理