Ubuntu 22.04下因Dell OpenSSL库兼容性问题导致SSL/TLS连接失败,求解决方法
Ubuntu 22.04下因Dell OpenSSL库兼容性问题导致SSL/TLS连接失败,求解决方法
我最近在Dell Latitude 5420上的Ubuntu 22.04系统遇到了一堆SSL连接问题——比如尝试绑定Ubuntu Pro时直接报错,初始化Waydroid也弹出SSL错误提示,但明明网络和目标服务器都正常,折腾了好久才找到根源:系统的OpenSSL优先调用了Dell提供的库,导致版本兼容性冲突。
先说说我遇到的具体症状
- 执行Ubuntu Pro绑定命令时失败:
user@host:~$ sudo pro attach ********************* Failed to connect to authentication server Check your Internet connection and try again. - Waydroid初始化阶段直接抛出SSL相关错误
诊断过程:定位冲突根源
因为确认网络和目标主机都没问题,我查了相关线程,用这个命令拿到了关键的错误信息:
user@host:~$ sudo c_rehash /etc/ssl/certs
结果反复出现类似报错:
/usr/bin/openssl: /opt/dell/dcc/libcrypto.so.3: version `OPENSSL_3.0.3' not found (required by /usr/bin/openssl)
接着检查OpenSSL版本也触发同样的错误:
user@host:~$ openssl version openssl: /opt/dell/dcc/libcrypto.so.3: version `OPENSSL_3.0.3' not found (required by openssl)
最后用ldd命令分析openssl二进制的依赖,确认它确实在调用Dell目录下的库:
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)
解决步骤:改用系统自带OpenSSL库
既然问题出在Dell的库和系统OpenSSL版本不兼容,我决定让系统优先使用自带的OpenSSL库,步骤如下:
备份并移除Dell的冲突库目录,避免系统再调用它:
sudo mv /opt/dell/dcc /opt/dell/dcc_backup更新系统库缓存,让系统重新识别可用的库文件:
sudo ldconfig重新安装系统OpenSSL,确保相关文件完整无损坏:
sudo apt install --reinstall openssl更新SSL证书存储,先尝试常规更新,不行就用
--fresh参数重置整个证书库:sudo update-ca-certificates sudo update-ca-certificates --fresh
后续处理
做完这些操作后,Ubuntu Pro就能正常绑定了,Waydroid的SSL错误也消失了。我当时是第一次用Waydroid,索性直接重装了一遍;后来想想其实可能只需要重启Waydroid服务就行,不用重装。
现在系统的所有SSL连接都恢复正常了,希望这个解决过程能帮到遇到同样问题的朋友!
备注:内容来源于stack exchange,提问作者Daniel King




