在 CentOS 上“导入证书”要看具体用途(系统级、浏览器、Java、Docker、Nginx 等)。下面按最常见场景分别说明,基本能覆盖 90% 的使用情况。
CentOS 使用 ca-certificates 管理受信任证书。
证书必须是 PEM 格式(.crt / .pem):
# 查看是否是 PEM
openssl x509 -in your.crt -text -noout
如果不是,可转换:
openssl x509 -in your.der -inform der -out your.crt -outform pem
sudo cp your.crt /etc/pki/ca-trust/source/anchors/
sudo update-ca-trust
✅ 完成后:
curlwget都会信任该证书。
Java 不使用系统证书,而是自己的 keystore。
$JAVA_HOME/jre/lib/security/cacerts
常见路径:
/usr/lib/jvm/java-*/jre/lib/security/cacerts
sudo keytool -import -trustcacerts \
-keystore /usr/lib/jvm/java-*/jre/lib/security/cacerts \
-storepass changeit \
-alias mycert \
-file your.crt
默认密码是:
changeit
keytool -list -keystore cacerts -storepass changeit | grep mycert
如果是 HTTPS 服务证书:
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl/example.com.crt;
ssl_certificate_key /etc/nginx/ssl/example.com.key;
}
然后:
sudo nginx -t
sudo systemctl reload nginx
sudo mkdir -p /etc/docker/certs.d/your-registry:5000
sudo cp your.crt /etc/docker/certs.d/your-registry:5000/ca.crt
sudo systemctl restart docker
update-ca-trust 生效)curl https://your-domain
或:
openssl s_client -connect your-domain:443 -CAfile /etc/pki/tls/certs/ca-bundle.crt
| 错误 | 原因 |
|---|---|
| 证书不信任 | 格式不是 PEM |
| Java 仍报错 | 没导入 JDK cacerts |
| Docker 拉镜像失败 | 证书路径不对 |
| update-ca-trust 无效 | CentOS 6(需 chkconfig 方式) |
| 场景 | 方法 |
|---|---|
| curl / yum / 系统 | /etc/pki/ca-trust/source/anchors/ |
| Java | keytool 导入 cacerts |
| Nginx | 配置 ssl_certificate |
| Docker | /etc/docker/certs.d/ |
如果你能告诉我:
我可以给你精确到命令级别的方案。