APT 是否可以接受“无效”证书?

APT 是否可以接受“无效”证书?

我今天发现了一些有趣的事情。所以,我有 Kali Linux,我正在尝试使用存储库完全更新系统http://http.kali.org/kali。一切都很好,直到我因后门工厂和 mimikatz 被拒绝 403。起初我以为这是服务器配置错误,所以忽略了它,但后来我很好奇,决定将 URL 弹出到 Firefox 中。果然,我的大学屏蔽了这些特定的 URL,但没有屏蔽存储库中的其他任何内容。

我决定检查一下是否可以加载 https 中的 URL(是的,我知道这是一个不太可能的事情,因为大多数(据我所知)APT 服务器甚至根本不支持 https)并发现它确实有效,但只有在接受时archive-8.kali.org 的证书。 (是的,我知道无效的证书不好,但我想如果它使用 GPG 来检查有效性并且它使用没有加密的 http,那么为什么不呢)。

另外,我知道我可以使用https://archive-8.kali.org/kali代替旧的网址并已这样做,但我询问接受无效证书的原因是因为这种仅切换域的解决方案是否不可能。

答案1

您可以配置 HTTPS 传输的某些参数/etc/apt/apt.conf.d/man apt.conf有关详细信息,请参阅(“获取组”部分,“https”小节)。
还有一个有用的例子在项目上trusted-apt

例如,您可以完全禁用证书检查:

// Do not verify peer certificate
Acquire::https::Verify-Peer "false";
// Do not verify that certificate name matches server name
Acquire::https::Verify-Host "false";

...或者仅针对特定主机:

Acquire::https::repo.domain.tld::Verify-Peer "false";
Acquire::https::repo.domain.tld::Verify-Host "false";

这些选项应放置在新创建的文件中,/etc/apt/apt.conf.d/这样它们就不会干扰官方软件包安装的选项(这将创建自己的单独文件)。
文件名决定了选项文件的解析顺序,因此您可能需要选择一个相当高的数字,以便在其他软件包安装的选项之后解析您的选项。80ssl-exceptions例如,尝试一下。

答案2

对于临时解决方案,您可以执行以下操作:

apt -o "Acquire::https::Verify-Peer=false" update
apt -o "Acquire::https::Verify-Peer=false" install curl

相关内容