我计划在虚拟机上运行的 ubuntu 14.04 上安装 qt 5.5.1。我已经从 qt-io 下载了安装程序,当我尝试安装设置时,我注意到终端上出现以下警告,然后安装程序弹出。
qt.network.ssl: QSslSocket: cannot resolve SSLv2_client_method
qt.network.ssl: QSslSocket: cannot resolve SSLv2_server_method
我是否需要过多担心此警告?当我在同一台机器上安装 qt 5.3.1 时,我没有看到任何此类错误。
有没有办法解决这个警告?任何帮助都值得感激。谢谢。
这是我的机器上 openSSL 的当前版本。
openssl version -v
OpenSSL 1.0.1f 6 Jan 2014
答案1
现在 Ubuntu 中的 OpenSSL 编译时没有使用 sslv2,因为它不安全,但 Qt 5.5.x 仍然需要它。为了启用 sslv2,需要重新配置软件包,不使用 no-sslv2 标志。
安装必备软件包
sudo apt-get update
sudo apt-get install libssl-dev devscripts dpkg-dev cdbs debhelper dh-autoreconf libev-dev libpcre3-dev pkg-config
然后,获取源代码
cd ~/Downloads
sudo apt-get update
apt-get source openssl
现在我们需要编辑 openssl-1.0.1f/debian/rules 中的文件。找到第 44 行(不同版本行号可能不同)并删除,no-ssl2
如下所示:
cd openssl-1.0.1f
nano debian/rules
CONFARGS = --prefix=/usr --openssldir=/usr/lib/ssl --libdir=lib/$(DEB_HOST_MULTIARCH) no-idea no-mdc2 no-rc5 no-zlib enable-tlsext no-ssl3 enable-unit-test $(ARCH_CONFARGS)
接下来我们将添加注释并提交更改。然后重新构建包,这将需要一些时间,因此请跳到 nmap 部分并下载源代码。您可能会收到一些错误,提示无法验证版权,请忽略它。此外,编译可能需要一段时间,所以请耐心等待。
dch –n 'Allow SSLv2'
dpkg-source --commit
debuild -uc -us
现在~/Downloads
你将看到所有已构建的 deb 包。安装它们:
cd ..
sudo dpkg -i *ssl*.deb
现在重新安装 Qt 5.5.1 以查看警告是否仍然存在。
答案2
这个答案对我有帮助:
只需安装openssl1.0:
sudo apt install openssl1.0