如何获取linux系统ca证书
如何获取linux系统ca证书详细介绍
在 Linux 系统中获取和管理 CA 证书主要涉及系统级信任存储和应用程序特定配置。以下是分步指南,涵盖不同场景和工具:
一、系统级 CA 证书管理
1.
系统默认 CA 证书存储路径
- Debian/Ubuntu:
- 证书文件:
/usr/share/ca-certificates/(用户自定义证书) - 合并文件:
/etc/ssl/certs/ca-certificates.crt(系统自动生成)
- 证书文件:
- Red Hat/CentOS/Fedora:
- 证书文件:
/etc/pki/ca-trust/source/anchors/(用户自定义证书) - 合并文件:
/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem(系统自动生成)
- 证书文件:
- 其他发行版:
- Alpine:
/etc/ssl/certs/ca-certificates.crt - OpenSUSE:
/etc/ssl/ca-bundle.pem - FreeBSD:
/usr/local/share/certs/
(参考)
- Alpine:
2.
安装系统默认 CA 证书包
- Debian/Ubuntu:bash
ca-certificates - Red Hat/CentOS/Fedora:bash
yum ca-certificates - Arch Linux:bash
pacman ca-certificates
3.
手动添加自定义 CA 证书
- 复制证书到系统目录:bash
your_ca.crt /usr/share/ca-certificates/your_ca.crt - 更新证书列表:
- Debian/Ubuntu:bash
update-ca-certificates - Red Hat/CentOS/Fedora:bash
update-ca-trust extract
(参考)
- Debian/Ubuntu:bash
4.
验证证书安装
bash
openssl x509 /etc/ssl/certs/your_ca.crt
二、从服务器获取 CA 证书
1.
使用 openssl 获取证书链
bash
openssl s_client example.com:443 example.crt
此命令将输出服务器的证书链(包括中间证书和根证书)。
2.
提取特定证书
- 从证书链中分离根证书:bash
openssl x509 example.crt root.crt no_pubkey
三、处理自签名证书
1.
生成自签名证书
bash
openssl req rsa:2048 private.key ca.crt
2.
信任自签名证书
- 复制到系统目录:bash
ca.crt /usr/share/ca-certificates/ca.crt - 更新证书列表:bash
update-ca-certificates - 验证:bash
/etc/ssl/certs/ca-certificates.crt https://example.com
四、应用程序特定配置
1.
Firefox 浏览器
- 手动导入:
- 进入
about:preferences#privacy,点击 查看证书 → 证书颁发机构 → 导入。 - 选择证书文件并勾选 信任此 CA 来识别网站。
(参考)
- 进入
- 使用系统证书:
- 在地址栏输入
about:config,搜索security.enterprise_roots.enabled,设为true。 - Firefox 将自动信任系统证书库中的 CA。
- 在地址栏输入
2.
Java 应用
- 导入证书到 JVM 信任库:
bashkeytool my_ca ca.crt /jre/lib/security/cacerts changeit(默认密码为
changeit)
(参考) - 配置应用使用自定义信任库:
bash/path/to/custom/cacerts password your_app.jar
3.
其他应用(如 curl、wget)
- 临时信任证书:bash
/path/to/ca.crt https://example.com--ca-certificate/path/to/ca.crt https://example.com
五、证书格式转换
1.
PEM 转 DER
bash
openssl x509 der ca.pem ca.der
2.
DER 转 PEM
bash
openssl x509 der ca.der ca.pem
3.
PFX/P12 转 PEM
bash
openssl pkcs12 cert.pfx cert.pem
六、证书更新与维护
1.
定期更新系统证书
- Debian/Ubuntu:bash
update upgrade ca-certificates - Red Hat/CentOS/Fedora:bash
yum update ca-certificates
2.
监控证书有效期
bash
openssl x509 /etc/ssl/certs/ca-certificates.crt
七、常见问题与解决方案
- 证书不被信任:
- 检查证书是否正确导入系统目录。
- 确认应用程序使用系统证书(如 Firefox 需启用
security.enterprise_roots.enabled)。 - 若为自签名证书,需手动信任。
- 应用程序独立证书存储:
- 部分应用(如 Postman、Docker)可能使用独立证书存储,需单独配置。
- 例如,Docker 可通过
--cacert参数指定证书。
- 证书过期:
- 重新获取新证书并替换旧证书,更新系统信任库。
总结
- 系统级证书:通过包管理器安装或手动导入,使用
update-ca-certificates或update-ca-trust更新。 - 自签名证书:需手动导入并信任,注意不同应用的配置差异。
- 应用程序特定配置:Firefox、Java 等需单独处理证书信任。
- 格式转换:使用 OpenSSL 处理不同证书格式。
通过以上方法,可全面管理 Linux 系统的 CA 证书,确保安全通信。