ssl新闻资讯

文档中心

Linux绯荤粺濡備綍娣诲姞SSL淇′换鏍硅瘉涔︼紵3鍒嗛挓鎼炲畾HTTPS瀹夊叏杩炴帴锛?txt

时间 : 2025-09-27 16:24:29浏览量 : 2

2Linux绯荤粺濡備綍娣诲姞SSL淇′换鏍硅瘉涔︼紵3鍒嗛挓鎼炲畾HTTPS瀹夊叏杩炴帴锛?txt

在日常的网络安全工作中,我们经常会遇到这样的场景:你的Linux服务器需要访问某个内部HTTPS网站,或者运行一个脚本调用API,结果却报错“SSL证书不可信”。比如:

```

curl https://internal-api.company.com

curl: (60) SSL certificate problem: unable to get local issuer certificate

这种错误的本质是系统不认可对方网站的SSL证书颁发机构(CA)。就像你去银行办业务,但银行不认你手里的身份证发证机关一样。今天我们就用“修水管”式的实操方法,教你在Linux系统中添加SSL信任根证书。

一、为什么要手动添加根证书?

SSL/TLS协议要求客户端必须信任服务端的证书颁发者(CA)。Linux系统默认携带了主流CA(如DigiCert、Let's Encrypt)的根证书,但遇到以下情况时需手动添加:

1. 企业内网环境:公司自建PKI体系,使用私有CA签发证书

(例如:AD CS服务器颁发的证书)

2. 特殊行业CA:某些***/金融机构的专属根证书

(比如中国金融认证中心CFCA)

3. 测试环境:开发时使用自签名证书

二、操作步骤详解(以Ubuntu/CentOS为例)

? 第一步:获取根证书文件

假设我们需要信任一个名为`MyCompany Root CA.crt`的证书:

```bash

从网站导出证书(浏览器操作)

或直接下载CA提供的.crt/.pem文件

wget https://ca.mycompany.com/root.crt -O /tmp/mycompany-root.crt

? 第二步:放置到系统信任存储

不同Linux发行版的证书存储位置不同:

| 系统类型 | 证书存放路径 | 更新命令 |

|-|--|--|

| Ubuntu/Debian | `/usr/local/share/ca-certificates/` | `sudo update-ca-certificates` |

| CentOS/RHEL | `/etc/pki/ca-trust/source/anchors/` | `sudo update-ca-trust` |

实际操作示例:

Ubuntu系统

sudo cp /tmp/mycompany-root.crt /usr/local/share/ca-certificates/

sudo update-ca-certificates

CentOS系统

sudo cp /tmp/mycompany-root.crt /etc/pki/ca-trust/source/anchors/

sudo update-ca-trust extract

? 第三步:验证是否生效

查看已安装的证书列表(Debian系)

awk -v cmd='openssl x509 -noout -subject' '

/BEGIN/{close(cmd)};{print | cmd}' < /etc/ssl/certs/ca-certificates.pem | grep "MyCompany"

或用curl测试

curl https://internal.mycompany.com --verbose

输出中应看到"SSL certificate verify ok"

三、高级场景处理技巧

█ Case 1:Java应用不认系统证书?

Java有自己的独立信任库,需额外操作:

找到JRE的cacerts文件位置(通常在这里)

JAVA_HOME=$(readlink -f $(which java) | sed 's:/bin/java::')

sudo keytool -importcert -keystore $JAVA_HOME/lib/security/cacerts \

-file mycompany-root.crt -alias MyCompanyRoot -storepass changeit -noprompt

█ Case 2:Docker容器内失效?

需要在构建镜像时添加:

```dockerfile

COPY mycompany-root.crt /usr/local/share/ca-certificates/

RUN update-ca-certificates

█ Case 3:只想对特定用户生效?

mkdir -p ~/.pki/nssdb/

certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n "MyCert" -i mycompany-root.crt

四、安全注意事项??

1. 权限控制

```bash

sudo chmod 644 /usr/local/share/ca-certificates/mycompany-root.crt

Debian系样例

```

防止恶意用户替换根证书实施中间人攻击

2. 定期审计

使用命令检查异常新增的CA:

```bash

ls -lth /etc/ssl/certs/ | head

3. 撤销机制

对于不再需要的证书:

sudo rm /etc/pki/ca-trust/source/anchors/obsolete.crt && sudo update-ca-trust

五、原理图解

[浏览器] ←HTTPS→ [Nginx服务器]

↖ ↗

[Root CA Certificate]

(信任锚点)

当这个“信任锚点”被加入系统的可信库后,所有由该CA签发的子证书都会被自动信任。

通过以上步骤,你的Linux系统就能和企业PKI体系无缝接轨了。遇到其他特殊场景?欢迎在评论区交流实战经验!

TAG:linux添加ssl信任根证书,linux添加信任关系,linux添加信任ip,linux配置ssl,linux ssh信任,linux配置信任关系