在信息化浪潮中,网络安全是维系系统稳定与数据完整的基石,而在众多安全机制中,证书颁发机构(CA)证书扮演着数字世界“身份证”和“护照”的关键角色,对于仍在运行的老旧但稳定的服务器系统,如CentOS 6.5,正确管理和维护CA证书,依然是保障其网络通信安全(如HTTPS、SSH、VPN等)不可或缺的一环,本文将深入探讨在CentOS 6.5系统中,CA证书的概念、管理、更新、添加自定义证书以及常见问题的排查方法。

CA证书的基本概念
CA证书并非单一文件,而是一套由公钥基础设施(PKI)体系定义的信任链,这个信任链的顶端是根证书颁发机构,它拥有最高级别的信任,操作系统和浏览器内置了这些根CA的公钥证书,当您访问一个使用HTTPS的网站时,服务器会发送它的证书,该证书由某个中间CA签发,而中间CA又由一个根CA签发,您的系统会通过验证这条签名链,最终确认服务器证书是否由一个受信任的根CA所授权,从而建立安全连接。
如果系统中的CA证书库过时,就可能无法信任新的或更换了CA的合法网站,导致证书验证失败;反之,如果包含了被吊销或不安全的CA,则会带来安全风险。
CentOS 6.5中的CA证书管理
在CentOS 6.5这类基于Red Hat的系统中,CA证书的集中管理非常规范化,它们通常由一个名为ca-certificates的软件包提供。
证书存储位置
主要的CA证书捆绑文件存放在 /etc/pki/tls/certs/ 目录下,核心文件通常是 ca-bundle.crt 或 ca-bundle.trust.crt,这是一个包含了众多受信任根CA和中间CA证书的大文件,以PEM格式串联而成,应用程序在进行TLS/SSL握手时,会默认参考这个文件来验证对端证书的有效性。
可以通过以下命令查看这个文件的基本信息:
ls -l /etc/pki/tls/certs/ca-bundle.crt
安装与更新CA证书
在一个标准的CentOS 6.5安装中,ca-certificates包通常已经默认安装,但随着时间的推移,新的CA机构会出现,旧的CA可能被撤销或密钥到期,因此定期更新至关重要。
标准更新流程
理论上,更新CA证书非常简单,只需使用YUM包管理器:
sudo yum update ca-certificates
这里必须强调一个关键问题:CentOS 6.5已于2020年11月30日正式结束生命周期(EOL),这意味着其官方的YUM软件源已经停止维护和访问,直接执行上述命令将因找不到源而失败。
EOL后的更新策略

对于仍在使用的CentOS 6.5系统,要更新软件包,需要将YUM源指向CentOS的存档仓库,请编辑 /etc/yum.repos.d/CentOS-Base.repo 文件,将其中的 mirrorlist 注释掉,并启用 baseurl 指向 http://vault.centos.org/6.5/ 对应的目录,修改示例如下:
[base] name=CentOS-6.5 - Base #mirrorlist=http://mirrorlist.centos.org/?release=6.5&arch=$basearch&repo=os&infra=$infra baseurl=http://vault.centos.org/6.5/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 # ... 对updates, extras等section也做类似修改 ...
修改保存后,清理YUM缓存并尝试更新:
sudo yum clean all sudo yum update ca-certificates
如果网络受限,也可以手动从 vault.centos.org 或其他可信镜像站下载对应版本的 ca-certificates RPM包,然后使用 rpm -Uvh 命令进行本地安装。
添加自定义CA证书
在企业内部网络环境中,经常会遇到需要信任企业自签名CA证书或内部代理服务器证书的情况,需要将自定义的CA证书添加到系统的信任库中。
操作步骤如下:
获取证书文件:确保你拥有PEM格式的自定义CA证书文件(
my-custom-ca.pem)。复制到证书目录:将证书文件复制到系统的证书目录。
sudo cp my-custom-ca.pem /etc/pki/tls/certs/
更新证书捆绑包:最直接且兼容性最好的方法,是将自定义证书的内容追加到主捆绑文件
ca-bundle.crt的末尾。sudo cat /etc/pki/tls/certs/my-custom-ca.pem >> /etc/pki/tls/certs/ca-bundle.crt
验证:更新完成后,可以使用
curl或openssl来验证是否能够成功信任由该CA签名的网站,假设内部网站internal.example.com使用了此CA签发的证书:curl -I https://internal.example.com
如果命令正常返回HTTP头信息,没有报错,则说明证书已被成功信任。
常见问题与排查
在处理CA证书时,最常见的问题是证书验证失败,以下是一些典型错误及其排查思路。

| 错误信息示例 | 可能原因及解决方案 |
|---|---|
certificate verify failed | 系统CA证书库过时,或服务器证书由不在信任库中的CA签发,尝试更新CA包或添加自定义CA。 |
unable to get local issuer certificate | 链式验证中断,系统缺少服务器证书的中间CA证书,通常需要更新CA包或手动添加缺失的中间CA。 |
YUM更新失败:Could not resolve host | CentOS 6.5 EOL后源地址失效,需修改 /etc/yum.repos.d/ 下的配置文件,指向vault存档源。 |
排查时,首先应使用 openssl s_client -connect target-host:443 -showcerts 命令手动连接目标服务器,查看完整的证书链信息,这有助于判断是根CA不受信任还是中间CA缺失。
相关问答FAQs
问1:CentOS 6.5已经如此老旧,为什么还要投入精力去管理它的CA证书?
答: 尽管CentOS 6.5老旧,但在许多特定场景下仍在运行,作为专用的工业控制(SCADA)系统服务器、运行无法轻易迁移的旧版商业软件、嵌入式设备或成本敏感型项目的后台,这些系统可能长期处于内网环境,但并非绝对安全,尤其在与外网进行数据同步或更新的节点上,一个有效的CA证书库能防止中间人攻击,确保通信的机密性和完整性,为其维护基本的安全措施,包括CA证书,是降低风险的必要之举。
问2:我如何确认一个特定的CA证书(DigiCert SHA2 Secure Server CA”)是否存在于我系统的信任库中?
答: 您可以通过 grep 命令在 ca-bundle.crt 文件中搜索该CA的名称或部分信息,这是一种快速有效的确认方法。
确定要搜索的CA名称,可以从浏览器查看网站证书详情时获得。
使用
grep命令进行搜索,-i参数可以忽略大小写:grep -i "DigiCert SHA2 Secure Server CA" /etc/pki/tls/certs/ca-bundle.crt
如果命令返回了匹配的行(通常会包含该CA的证书内容),说明该证书已在信任库中,如果没有任何输出,则说明系统当前不信任此CA,可能需要更新CA证书包或手动添加。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复