WSL2 证书验证错误

WSL2 证书验证错误

在我的个人电脑(Win 11)上安装了带有 Ubuntu 20.04 的 WSL2,但在安装程序时遇到了一些困难。

我尝试安装 OpenFoam 和 Geogebra,但都出现与证书相关的错误。

有人能帮助我理解原因以及如何解决吗?

安装 GEOGEBRA 时:

sudo apt-add-repository -u 'deb http://www.geogebra.net/linux/ stable main'

我收到错误:

...
Err:17 https://sourceforge.net/projects/openfoam/files/repos/deb focal Release
  Certificate verification failed: The certificate is NOT trusted. The certificate chain uses expired certificate.  Could not handshake: Error in the certificate verification. [IP: 204.68.111.105 443]
Get:20 http://archive.ubuntu.com/ubuntu focal-updates/universe Translation-en [207 kB]
Get:21 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 c-n-f Metadata [20.7 kB]
Reading package lists... Done
W: GPG error: http://www.geogebra.net/linux stable InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY C072A32983A736CF
E: The repository 'http://www.geogebra.net/linux stable InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: The repository 'https://dl.openfoam.com/repos/deb focal Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

使用OpenFOAM:

添加存储库

curl https://dl.openfoam.com/add-debian-repo.sh | sudo bash

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  3862  100  3862    0     0  11392      0 --:--:-- --:--:-- --:--:-- 11358
Detected distribution code-name: focal
Overwrote /etc/apt/sources.list.d/openfoam.list
Importing openfoam gpg key... done
Overwrote /etc/apt/trusted.gpg.d/openfoam.gpg
Running apt-get update... done

The repository is setup! You can now install packages.

安装首选包:

sudo apt-get install openfoam2112-default
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package openfoam2112-default
    

此链接 他们提出了这样的解决方案:

sudo apt install ca-certificates

对于地理数学,我发现这个建议的解决方案

但在继续之前我想更好地了解这个问题。

有人可以帮助我更好地理解它吗?

答案1

因此,这两者是相关的,但又有所不同。这里有几个不同的主题需要讨论:

Ubuntu 20.04 上的 PPA 密钥

这两个应用程序都是从 PPA(个人软件包存档)安装的。这是由这些应用程序的维护者设置的存储库,用于简化 Ubuntu 下的安装。

作为一项安全措施,apt要求这些私有存储库中的包使用维护者的私钥进行签名。为了验证签名,apt需要相应的公钥。这就是apt-key您在 Geogebra 中看到的命令的目的回答你提到过。如果你有兴趣,可以谷歌搜索“公钥加密”获取更多详细信息。

OpenFOAM 正在做同样的事情,但是您通过以下方式运行脚本:

curl https://dl.openfoam.com/add-debian-repo.sh | sudo bash

... 实际上就是apt-key add为了他们的钥匙而做的。

添加密钥后,您还需要使用 更新本地 repo 缓存sudo apt update。同样,这在 Geogebra 答案中提到过,并且也由 OpenFOAM 脚本自动完成。

20.04 之后的 PPA 密钥

请注意,Ubuntu 20.04 是最后一个主要版本,其中此特定过程完全按照此方式工作。在 20.04 中,添加密钥将允许任何使用该密钥签名的软件是可信的。这在某种程度上存在安全风险,因为如果私钥泄露,它可能会被用来签名恶意软件,然后你的系统就会信任这些恶意软件。话虽如此,这种情况已经持续了很多年了。就我个人而言,我很高兴他们改变了它。

现在,在 20.10 及更高版本中,您必须将每个存储库配置为具有受信任的密钥。由该密钥对签名的位于不同存储库中的软件将不再受信任。请参阅这个优秀的答案了解详细信息。但也要意识到,配置存储库密钥的方法可能会随着时间的推移而改变和改进。

因此,在您的系统上安装各自的 apt 密钥后,Geogebra 和 OpenFOAM 就应该安装。

OpenFOAM 错误

但是,您会看到 OpenFOAM 出现一个有趣的错误:

E: Unable to locate package openfoam2112-default

这个问题无法通过安装来解决ca-certificates,因为它们实际上是 WSL 上默认 Ubuntu 20.04 安装的一部分。

我可以告诉你,我刚刚在我的 WSL/Ubuntu 20.04 上尝试过,并且它运行正常,所以我能想到两种可能性:

  • 您的系统上的 repo 未正确更新。
  • 当您尝试安装时,repo 中出现暂时故障。

由于我已经成功完成此操作,因此我建议您再试一次:

sudo apt update
sudo apt-get install openfoam2112-default

如果这不起作用,请再次运行脚本,然后重试:

curl https://dl.openfoam.com/add-debian-repo.sh | sudo bash
sudo apt-get install openfoam2112-default
运行从网上下载的脚本

好的,这也引出了有关此类脚本的话题。由于我们在这里讨论的是“安全”话题,并且您已经表达了兴趣,请记住,从 Web 运行脚本,尤其将它们传递给sudo,存在相当大的安全风险。

你必须:

  • 相信维护者没有做一些邪恶的事情。
  • 相信该网站尚未被占领。
  • 相信该项目还没有被出售或移交给一个正在做一些邪恶事情的“坏人”(这已经发生了)。

或者:

  • 您需要检查正在运行的脚本并确保它看起来是安全的。您可以先发出curl https://dl.openfoam.com/add-debian-repo.sh 没有将其传递给sudo bash

因此,我通常更喜欢 PPA 上的项目,只要它提供指示安装他们的密钥,而不是提供自动化“更易于使用”的脚本。

ca 证书

最后,既然您问到:

sudo apt install ca-certificates

这确实涵盖了这个答案(这也恰好是 Google 搜索结果的首位)。

但在这种情况下它不会有帮助。您链接到的 OpenFOAM 线程是由于:

sourceforge.net 的证书已过期,因此我无法创建存储库,因此无法安装系统

这不是您遇到的问题(或错误)。

相关内容