AbiertoSSL

AbiertoSSL

Entiendo que Ubuntu 22.04 se actualizó a OpenSSL 3.0. Esto ha roto el script de unión al punto de acceso WiFi seguro de mi universidad porque "algunos algoritmos inseguros se han desactivado de forma predeterminada". No quiero bajar a la versión 1.1.1, sino instalar 1.1.1 junto con 3.0, idealmente bajo un alias como openssl1(tal como puedo con, por ejemplo, python2y python3) y luego piratear el script para usarlo openssl1.

¿Qué es lo más parecido a una forma compatible de hacer esto?

Respuesta1

En mi caso, me enfrenté a un problema similar debido al cambio de openssl 3.x desde 1.1.x., como errores como:

VERIFY ERROR: depth=0, error=CA signature digest algorithm too weak

Sin embargo, todavía quería usar el administrador de red gráfico proporcionado por gnome, así que hice lo mencionado en el truco de Gustavo y luego construí una nueva versión de openvpn con la versión openssl 1.1.1:

# Move to temp folder
cd /tmp

# get dependencies
sudo apt install libssl-dev liblzo2-dev libpam0g-dev

AbiertoSSL

Motivo de la versión actualizada: Intenté con otra instalación de Ubuntu 22.04, pero no pude crear la openssl 1.1.1lbiblioteca como lo hice en la versión anterior (ver más abajoVersión antiguasección). Esta vez, falló durante la make testprueba con un error 80-test_ssl_new, con el siguiente resultado: ../test/recipes/80-test_ssl_new.t .................. Dubious, test returned 1 (wstat 256, 0x100). Después de la investigación, parece que debido a la actualización del perlpaquete en Ubuntu 22.04 a 5.34, @INCfalta el módulo perl debido a un problema de seguridad.

De todos modos, en lugar de intentar resolver este nuevo problema, simplemente descargué el binario Impish en lugar de intentar compilarlo desde cero:

# 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

En tal caso, puede utilizar directamente esos paquetes de versión anterior para crear OpenVPN con las dependencias correctas.

OpenVPN

Ahora que OpenSSL es la versión 1.1.1l, al igual que con 21.10 Impish, puedo crear un binario OpenVPN usando las bibliotecas 1.1.1l.

# 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

En esta etapa, pude conectarme a mi VPN usando certificados existentes; sin embargo, el administrador de red gráfico todavía usaba la versión predeterminada 2.5.5 de OpenVPN basada en OpenSSL 3.x.

Gnomo

Descubrí que el administrador de red siempre apuntaba a archivos binarios /usr/sbin, así que hice una copia de seguridad y luego vinculé simbólicamente el OpenVPN integrado:

# 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

Limpiar

Si utilizó el binario OpenSSL de Impish, ahora debe hacer algo sudo apt update && sudo apt upgradepara recuperar la versión más reciente de este paquete. No debería dañar tu marca.viejoVersión OpenVPN

Versión antigua de este artículo.

AbiertoSSL

este es elversión antiguade la parte OpenSsl anterior:

# 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

OpenVPN

Este es elversión antiguade la parte de OpenVPN anterior. Ahora que OpenSSL es la versión 1.1.1l, al igual que con 21.10 Impish, puedo crear un binario OpenVPN usando las bibliotecas 1.1.1l.

# 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

Respuesta2

La compilación desde el código fuente funciona, especialmente si puede apuntar lo que necesite openssl 1.1.1 a un directorio específico con las bibliotecas:

cd /usr/local/src/
sudo git clone https://github.com/openssl/openssl.git -b OpenSSL_1_1_1-stable openssl-1.1.1m
cd openssl-1.1.1m
sudo ./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared zlib
sudo make
sudo make test
sudo make install_sw

El directorio que contiene las bibliotecas ahora es/usr/local/ssl

Respuesta3

habilitar proveedores heredados en la última versión:

https://gist.github.com/rdh27785/97210d439a280063bd768006450c435d

/etc/ssl/openssl.cnf

agregar o cambiar

 # List of providers to load
 [provider_sect]
 default = default_sect
 legacy = legacy_sect 
 [default_sect]
 activate = 1
 [legacy_sect]
 activate = 1

luego reinicie los servicios relevantes (o reinicie)

información relacionada