You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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库,步骤如下:

  1. 备份并移除Dell的冲突库目录,避免系统再调用它:

    sudo mv /opt/dell/dcc /opt/dell/dcc_backup
    
  2. 更新系统库缓存,让系统重新识别可用的库文件:

    sudo ldconfig
    
  3. 重新安装系统OpenSSL,确保相关文件完整无损坏:

    sudo apt install --reinstall openssl
    
  4. 更新SSL证书存储,先尝试常规更新,不行就用--fresh参数重置整个证书库:

    sudo update-ca-certificates
    sudo update-ca-certificates --fresh
    

后续处理

做完这些操作后,Ubuntu Pro就能正常绑定了,Waydroid的SSL错误也消失了。我当时是第一次用Waydroid,索性直接重装了一遍;后来想想其实可能只需要重启Waydroid服务就行,不用重装。

现在系统的所有SSL连接都恢复正常了,希望这个解决过程能帮到遇到同样问题的朋友!

备注:内容来源于stack exchange,提问作者Daniel King

火山引擎 最新活动