apt安装包时报错:Certificate verification failed: The certificate is NOT trusted.

在使用apt安装包时遇到证书验证失败的问题,错误提示为'Certificate verification failed: The certificate is NOT trusted.'。尝试安装和更新ca-certificates未成功。通过在源配置文件中添加[trusted=yes]并未解决问题。最终通过临时关闭证书验证(Acquire { https::Verify-Peer false })解决了问题,但此方法不推荐。检查/etc/ca-certificates确认系统包含了DST_Root_CA_X3.crt。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

忽略:1 https://mirrors.tuna.tsinghua.edu.cn/ubuntu groovy-updates/universe amd64 apt-transport-https all 2.1.10ubuntu0.3
错误:1 https://mirrors.tuna.tsinghua.edu.cn/ubuntu groovy-updates/universe amd64 apt-transport-https all 2.1.10ubuntu0.3
  Certificate verification failed: The certificate is NOT trusted. The certificate issuer is unknown.  Could not handshake: Error in the certificate verification. [IP: 101.6.8.193 443]
W: https://mirrors.tuna.tsinghua.edu.cn/ubuntu/pool/universe/a/apt/apt-transport-https_2.1.10ubuntu0.3_all.deb: No system certificates available. Try installing ca-certificates.
W: https://mirrors.tuna.tsinghua.edu.cn/ubuntu/pool/universe/a/apt/apt-transport-https_2.1.10ubuntu0.3_all.deb: No system certificates available. Try installing ca-certificates.
E: 无法下载 https://mirrors.tuna.tsinghua.edu.cn/ubuntu/pool/universe/a/apt/apt-transport-https_2.1.10ubuntu0.3_all.deb  Certificate verification failed: The certificate is NOT trusted. The certificate issuer is unknown.  Could not handshake: Error in the certificate verification. [IP: 101.6.8.193 443]
E: 有几个软件包无法下载,要不运行 apt-get update 或者加上 --fix-missing 的选项再试试?

 

之前将源改为了清华的源,清华源之前的源使用的是http,清华源使用的是https

 

尝试了apt install ca-certificates和apt upgrade ca-certificates都没有效果(需要切换到原始源尝试,否则因为清华源证书错误无法运行)

 

尝试了添加[trusted=yes]到源配置文件中,也无效

deb [trusted=yes] https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ groovy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ groovy main restricted universe multiverse
deb [trusted=yes] https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ groovy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ groovy-updates main restricted universe multiverse
deb [trusted=yes] https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ groovy-backports main restri

### 解决方案概述 当遇到服务器SSL证书验证失败的问题,通常是因为客户端无法确认服务器提供的证书是由受信任的颁发机构签发的。对于自签名证书或内部CA签发的证书,可以通过多种方式来解决问题。 #### 方法一:永久接受特定证书 为了使Git能够永久接受某个特定的自签名证书,可以在克隆仓库指定`--config http.sslCAPath`参数指向包含可信证书的目录[^1]: ```bash git clone https://example.com/repo.git --config http.sslCAPath=/path/to/certs/ ``` 另一种方法是在全局Git配置中设置`http.sslBackend`选项为`openssl`并指明具体的PEM格式的证书文件路径: ```bash git config --global http.sslCAInfo /etc/ssl/certs/ca-certificates.crt ``` 这将告诉Git在每次连接HTTPS URL都使用此证书作为根证书链的一部分来进行身份验证。 #### 方法二:忽略SSL验证(不推荐) 虽然直接禁用SSL验证不是最安全的做法,但在某些情况下可能被当作临措施采用。通过设置环境变量`GIT_SSL_NO_VERIFY=true`或者修改本地Git配置中的`http.sslVerify=false`属性可实现这一点: ```bash export GIT_SSL_NO_VERIFY=true # 或者 git config --global http.sslVerify false ``` 请注意这种方法会降低安全性,因为不再检查服务器的身份真实性[^2]。 #### 方法三:手动导入CA证书到系统库 如果问题是由于缺少对内部CA的信任,则应该获取该CA的公共证书并将它安装到操作系统的默认证书存储区里。这样不仅解决了当前项目的问题,还使得其他依赖于操作系统级TLS握手的应用程序也能正常工作[^3]。 例如,在Linux上可以这样做: ```bash sudo cp your-ca-cert.pem /usr/local/share/ca-certificates/ sudo update-ca-certificates ``` 而在Windows环境下则需打开“Internet选项”,转至“内容”标签页下的“证书管理器”,再把下载好的`.crt`文件添加进去。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值