在 Linux 系统中,OpenSSL 证书的位置取决于你是问“OpenSSL 本身使用的证书”,还是“你自己用 OpenSSL 生成的证书”。下面分情况说明,最常用的是前两种。
OpenSSL 在验证证书时,通常会使用系统存放的 CA 证书(根证书)。
/etc/ssl/certs/
/etc/ssl/certs/ca-certificates.crt
/etc/pki/tls/certs/
/etc/pki/tls/certs/ca-bundle.crt
/usr/lib/ssl/
/usr/local/ssl/
OpenSSL 的证书路径通常在配置文件中定义:
/etc/ssl/openssl.cnf
你可以查看:
openssl version -d
示例输出:
OPENSSLDIR: "/usr/lib/ssl"
然后查看:
cat /usr/lib/ssl/openssl.cnf
其中可能包含:
[ CA_default ]
dir = ./demoCA
certs = $dir/certs
如果你是自己生成证书,默认 不会自动放到系统目录,而是在你执行命令的当前目录。
openssl req -x509 -newkey rsa:2048 -keyout server.key -out server.crt
生成文件:
server.key # 私钥
server.crt # 证书
你可以手动放到:
/etc/ssl/private/ # 私钥(权限 600)
/etc/ssl/certs/ # 证书
openssl x509 -in server.crt -text -noout
find /etc -name "*.crt" 2>/dev/null
openssl version -a
或:
openssl s_client -connect www.baidu.com:443
它会显示正在使用的 CA、证书链等。
| 类型 | 路径 |
|---|---|
| Ubuntu CA 证书 | /etc/ssl/certs/ |
| Ubuntu CA 包 | /etc/ssl/certs/ca-certificates.crt |
| CentOS CA 包 | /etc/pki/tls/certs/ca-bundle.crt |
| OpenSSL 配置 | /etc/ssl/openssl.cnf |
| 自定义证书 | 当前目录(或你指定的) |
如果你愿意,可以告诉我:
我可以给你更精确的回答 ✅