我在 SSL 连接方面遇到了一些问题。原来 OpenSSL 使用了戴尔提供的库,这导致了兼容性问题。
在尝试连接 Ubuntu Pro 时,我遇到了:
user@host:~$sudo pro attach *********************
Failed to connect to authentication server
Check your Internet connection and try again.
在尝试初始化 Waydroid 时,我遇到了 SSL 错误消息。我知道我的网络或我尝试访问的主机没有问题。
所以我读了另一个线程尝试了一些命令来诊断和调试 SSL 问题,这个命令给了我一些有用的调试信息
user@host:~$sudo c_rehash /etc/ssl/certs
Doing /etc/ssl/certs
/usr/bin/openssl: /opt/dell
/usr/bin/openssl: /opt/dell/dcc/libcrypto.so.3: version `OPENSSL_3.0.3' not found (required by /usr/bin/openssl)
# (this message on the above line repeated numerous times)
然后我根据收到的建议检查了这一点。
user@host:~$ openssl version
openssl: /opt/dell/dcc/libcrypto.so.3: version `OPENSSL_3.0.3' not found (required by openssl)
因此存在与戴尔提供的库相关的错误。我有一台戴尔 Latitude 5420。
我检查了库路径,以查看 libcrypto.so.3 库从哪里加载。使用以下命令ldd
检查 openssl 二进制文件的依赖项:
ubuntu@laptop-ubuntu22-04:~$ ldd /usr/bin/openssl
/usr/bin/openssl: /opt/dell/dcc/libcrypto.so.3: version `OPENSSL_3.0.3' not found (required by /usr/bin/openssl)
linux-vdso.so.1 (0x00007ffe945e0000)
libssl.so.3 => /opt/dell/dcc/libssl.so.3 (0x00007fda47637000)
libcrypto.so.3 => /opt/dell/dcc/libcrypto.so.3 (0x00007fda47000000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fda46c00000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fda47632000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fda4762d000)
/lib64/ld-linux-x86-64.so.2 (0x00007fda477f9000)
ldd /usr/bin/openssl 的输出确认 OpenSSL 二进制文件链接到 Dell 提供的 OpenSSL 库/opt/dell/dcc/
。似乎这些库与预期的 OpenSSL 版本不兼容。为了解决这个问题,我选择使用系统的 OpenSSL 库,而不是 Dell 提供的库。
我删除了戴尔提供的 OpenSSL 库,因为它们引起了冲突,并将它们移动到备份文件夹以防止系统使用它们。
sudo mv /opt/dell/dcc /opt/dell/dcc_backup
更改目录后,我更新了系统的库缓存以反映更改:
sudo ldconfig
然而,我仍然遇到 SSL 问题。
检查我的/etc/ssl/openssl.cnf
配置文件以检查是否存在冲突 - 没有发现。
所以我重新安装了 OpenSSL
sudo apt install --reinstall openssl
并更新了我的 SSL 证书存储
sudo update-ca-certificates
但仍然有错误并尝试了这个
sudo update-ca-certificates --fresh
完成所有这些后,我能够连接 Ubuntu Pro,并且 Waydroid 中不再出现 SSL 问题。我预计不会再出现我最终肯定会发现的更多 SSL 问题。
我确实必须重新安装 Waydroid 才能使其正常工作。幸运的是,这是我第一次使用它,所以我没有什么可失去的。回想起来,也许我可以停止并重新启动 Waydroid 服务。
希望分享此信息可以帮助其他人解决类似的问题......
答案1
通过重定向 OpenSSL 以使用 Ubuntu 的库、重新安装 OpenSSL 和 CA 证书以及更新 CA 证书,我解决了 SSL/TLS 连接问题。我简要介绍了以下步骤
如果您的问题如下 - 戴尔提供的 OpenSSL 库导致冲突:
openssl: /opt/dell/dcc/libcrypto.so.3: version `OPENSSL_3.0.3' not found (required by openssl)
解决方案似乎是:
-您应该删除或者重命名它们。
sudo mv /opt/dell/dcc /opt/dell/dcc_backup
-重定向 OpenSSL 以使用 Ubuntu 的库而不是 Dell 的库。
sudo ldconfig
-重新安装 OpenSSL 并更新 CA 证书
sudo apt install --reinstall openssl
sudo update-ca-certificates --fresh