Kee*_*oek 24 upgrade openssl 22.04
我了解到Ubuntu 22.04升级到了OpenSSL 3.0。这破坏了我大学的安全 WiFi 接入点加入脚本,因为“默认情况下禁用了一些不安全的算法”。我不想降级到版本 1.1.1,而是安装 1.1.1 和 3.0,理想情况下使用别名openssl1
(就像我可以使用 egpython2
和python3
),然后修改脚本以使用openssl1
.
最接近支持的方法是什么?
小智 12
就我而言,由于 openssl 3.x 从 1.1.x 迁移,我遇到了类似的问题,例如以下错误:
VERIFY ERROR: depth=0, error=CA signature digest algorithm too weak
Run Code Online (Sandbox Code Playgroud)
然而,我仍然想使用 gnome 提供的图形网络管理器,所以它按照 Gustavo 提到的技巧做了,然后使用 openssl 1.1.1 版本构建一个新的 openvpn 版本:
# Move to temp folder
cd /tmp
# get dependencies
sudo apt install libssl-dev liblzo2-dev libpam0g-dev
Run Code Online (Sandbox Code Playgroud)
更新版本原因:我尝试安装另一个 Ubuntu 22.04,但未能openssl 1.1.1l
像在以前的版本中那样构建库(请参阅下面的旧版本部分)。这次,它在make test
测试过程中失败,并出现错误80-test_ssl_new
,输出如下:../test/recipes/80-test_ssl_new.t .................. Dubious, test returned 1 (wstat 256, 0x100)
。经过调查,似乎是由于perl
Ubuntu 22.04上的软件包升级到5.34,@INC
由于安全问题,perl模块丢失了。
不管怎样,我没有尝试解决这个新问题,而是只是下载了 Impish 二进制文件,而不是尝试从头开始构建它:
# download binary openssl packages from Impish builds
wget http://security.ubuntu.com/ubuntu/pool/main/o/openssl/openssl_1.1.1f-1ubuntu2.16_amd64.deb
wget http://security.ubuntu.com/ubuntu/pool/main/o/openssl/libssl-dev_1.1.1f-1ubuntu2.16_amd64.deb
wget http://security.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2.16_amd64.deb
# install downloaded binary packages
sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2.16_amd64.deb
sudo dpkg -i libssl-dev_1.1.1f-1ubuntu2.16_amd64.deb
sudo dpkg -i openssl_1.1.1f-1ubuntu2.16_amd64.deb
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您可以直接使用那些旧版本的软件包来构建具有正确依赖关系的OpenVPN。
现在 OpenSSL 是 1.1.1l 版本,与 21.10 Impish 一样,我可以使用 1.1.1l 库构建 OpenVPN 二进制文件
# Get OpenVPN sources from Ubuntu 22.04 Jammy
wget https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/openvpn/2.5.5-1ubuntu3/openvpn_2.5.5.orig.tar.xz
# Extract files
tar -xvf openvpn_2.5.5.orig.tar.xz
# build openvpn 2.5.5
cd ..
cd openvpn-2.5.5/
./configure
make -j 4 && sudo make install
# refresh cache
hash -r
# check version
/usr/local/sbin/openvpn --version
ldd /usr/bin/openssl
ldd /usr/local/sbin/openvpn
Run Code Online (Sandbox Code Playgroud)
在此阶段,我能够使用现有证书连接到我的 VPN,但是,图形网络管理器仍然使用基于 OpenSSL 3.x 的默认 2.5.5 OpenVPN 版本。
我发现网络管理器总是针对 中的二进制文件/usr/sbin
,因此我做了备份,然后对构建的 OpenVPN 进行符号链接:
# make a backup of default OpenVPN 2.5.5 before replace
sudo mv /usr/sbin/openvpn /usr/sbin/openvpn-2.5.5_default
# Symlink new OpenVPN client built with OpenSSL 1.1.1l library
sudo ln -s /usr/local/sbin/openvpn /usr/sbin/openvpn
Run Code Online (Sandbox Code Playgroud)
如果您使用来自 Impish 的 OpenSSL 二进制文件,您现在应该恢复sudo apt update && sudo apt upgrade
此软件包的最新版本。它不应该破坏您品牌的旧OpenVPN 版本
这是上面 OpenSsl 部分的旧版本:
# Get OpenSSL sources from Ubuntu 21.10 Impish
wget https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/openssl/1.1.1l-1ubuntu1.6/openssl_1.1.1l.orig.tar.gz
# Extract files
tar -xvf openssl_1.1.1l.orig.tar.gz
# build openssl 1.1.1l
cd /tmp/openssl-1.1.1l/
./config shared enable-ec_nistp_64_gcc_128 -Wl,-rpath=/usr/local/ssl/lib --prefix=/usr/local/ssl
make -j 4
make test && sudo make install
# refresh cache
hash -r
# check version
/usr/local/ssl/bin/openssl <<< version
# symlink binary for path resolution
sudo ln -s /usr/local/ssl/bin/openssl /usr/local/bin/openssl
Run Code Online (Sandbox Code Playgroud)
这是上面 OpenVPN 部分的旧版本。现在 OpenSSL 是 1.1.1l 版本,与 21.10 Impish 一样,我可以使用 1.1.1l 库构建 OpenVPN 二进制文件
# Get OpenVPN sources from Ubuntu 22.04 Jammy
wget https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/openvpn/2.5.5-1ubuntu3/openvpn_2.5.5.orig.tar.xz
# Extract files
tar -xvf openvpn_2.5.5.orig.tar.xz
# build openvpn 2.5.5
cd ..
cd openvpn-2.5.5/
CFLAGS="-I/usr/local/ssl/include -Wl,-rpath=/usr/local/ssl/lib -L/usr/local/ssl/lib"
./configure
make -j 4 && sudo make install
# refresh cache
hash -r
# check version
/usr/local/sbin/openvpn --version
ldd /usr/local/bin/openssl
ldd /usr/local/sbin/openvpn
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
75446 次 |
最近记录: |