由于证书签名摘要较弱,eduroam 无法连接

Flo*_*ler 1 security wireless networking ssl 22.04

最近升级到 Ubuntu 22.04,激活我的 eduroam WiFi 连接时遇到一些问题。具体来说,我在系统日志中收到以下消息:

Mai 04 11:42:11 sliver wpa_supplicant[687]: TLS: Certificate verification failed, error 68 (CA signature digest algorithm too weak) depth 0 for '/C=DK/ST=Denmark/O=Aalborg Universitet/OU=IT Services/CN=wifi.aau.dk'
Run Code Online (Sandbox Code Playgroud)

目前,我只能在不使用证书时激活 eduroam 连接。用 来看openssl x509 ...,证书似乎仍在使用 SHA-1。

这是由证书颁发者(即我大学的 IT ppl)解决的问题,还是更新到 22.04 时出现的问题?

Tho*_*ard 5

这里的问题是因为 Ubuntu 遵循 OpenSSL 3 迁移,并且默认安全级别为 2。可以在此处(在“默认回调行为”下)解释默认安全级别,解释每个级别在 OpenSSL 3.0 中的含义。Ubuntu 在其附带的 OpenSSL 版本上使用默认级别 2。

从 Ubuntu 22.04 Jammy 开始,OpenSSL 使用默认安全级别 2。在OpenSSL 3.0 迁移指南中,对 OpenSSL 默认级别 1 进行了更改,以便“在安全级别 1 及以上不再允许使用 SHA1 签名的 X509 证书。 ” 不幸的是,由于 SHA1 证书现在“不安全”,您必须将配置降低到安全级别 0,这样才能接受所有内容。这是不安全的,但在您的 IT 团队更新证书之前,您没有太多选择。

根据此答案,您应该能够调整配置以使用较旧的安全默认值。我在这里调整了这些说明。

编辑你的/etc/ssl/openssl.cnf文件。在文件的开头添加以下内容:

openssl_conf = default_conf

[ default_conf ]

ssl_conf = ssl_sect

[ssl_sect]

system_default = system_default_sect

[system_default_sect]
CipherString = DEFAULT:@SECLEVEL=0
Run Code Online (Sandbox Code Playgroud)

然后重新启动系统以确保安全级别设置正确,并测试连接。您应该不再有这个问题。 请注意,这会降低系统的整体安全性,并可能使您容易受到旧站点或故意恶意站点上使用的旧协议和安全密码中的漏洞的影响。


最终,您所在大学的 IT 团队需要重新颁发带有 SHA256 签名的证书,并将其应用到自己的 eduroam 基础设施中。上述减少安全默认值的方法并不能保证安全,因为 SHA1 签名的证书现在已被 SSL 标准视为已弃用。 IT 团队更新其证书后,您应该立即删除此处完成的配置。

或者,在此期间不要在 eduroam 连接中使用证书。