Haga rpm de openssl y actualice la instalación.

ilustrar

No se recomienda compilar e instalar usando paquetes rpm porque habrá problemas con los archivos de biblioteca correspondientes.

Clasificación versión del sistema versión opensh versión openssl Resultados de la prueba
Compilación de openssl de versión baja centos6 8.7p1 1.0.1e normal
centos7 8.7p1 1.0.2k normal
centos8
corriente de centos
8.7p1 1.1.1g normal
Compilación de openssl de versión alta centos6 8.7p1 1.1.1l normal
centos7 1.0.2k 1.1.1l
1.1.1t
normal
centos8
corriente de centos
Hay un error pero la compilación no se realizó correctamente.

1. Descargue el paquete openssl

wget https://www.openssl.org/source/openssl-1.1.1t.tar.gz

2. Haga una copia de seguridad de los archivos openssl antiguos

Itere y reemplace directamente los archivos originales; se recomienda hacer una copia de seguridad de los siguientes archivos si es necesario

mkdir ~/ssl_bak
cp /usr/bin/openssl ~/ssl_bak
cp /usr/lib64/libcrypto.so.1.0.2k ~/ssl_bak
cp /usr/lib64/libssl.so.1.0.2k ~/ssl_bak

3. Cree el paquete rpm de openssl

Descargar paquetes necesarios

yum -y install  curl  which  make gcc perl  perl-WWW-Curl  rpm-build

Crea el directorio apropiado

mkdir -p /root/rpmbuild/{
    
    BUILD,RPMS,SOURCES,SPECS,SRPMS}

Crear archivo de especificaciones

cat << 'EOF' > /root/rpmbuild/SPECS/openssl.spec
Summary: OpenSSL 1.1.1i for Centos
Name: openssl
Version: %{?version}%{!?version:1.1.1i}
Release: 1%{?dist}
Obsoletes: %{name} <= %{version}
Provides: %{name} = %{version}
URL: https://www.openssl.org/
License: GPLv2+

Source: https://www.openssl.org/source/%{name}-%{version}.tar.gz

BuildRequires: make gcc perl perl-WWW-Curl
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
%global openssldir /usr/openssl

%description
OpenSSL RPM for version 1.1.1i on Centos

%package devel
Summary: Development files for programs which will use the openssl library
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}

%description devel
OpenSSL RPM for version 1.1.1i on Centos (development package)

%prep
%setup -q

%build
./config --prefix=%{openssldir} --openssldir=%{openssldir}
make

%install
[ "%{buildroot}" != "/" ] && %{__rm} -rf %{buildroot}
%make_install

mkdir -p %{buildroot}%{_bindir}
mkdir -p %{buildroot}%{_libdir}
ln -sf %{openssldir}/lib/libssl.so.1.1 %{buildroot}%{_libdir}
ln -sf %{openssldir}/lib/libcrypto.so.1.1 %{buildroot}%{_libdir}
ln -sf %{openssldir}/bin/openssl %{buildroot}%{_bindir}

%clean
[ "%{buildroot}" != "/" ] && %{__rm} -rf %{buildroot}

%files
%{openssldir}
%defattr(-,root,root)
/usr/bin/openssl
/usr/lib64/libcrypto.so.1.1
/usr/lib64/libssl.so.1.1

%files devel
%{openssldir}/include/*
%defattr(-,root,root)

%post -p /sbin/ldconfig

%postun -p /sbin/ldconfig
EOF

Prepare el paquete correspondiente y compile el paquete rpm.

cp openssl-1.1.1t.tar.gz /root/rpmbuild/SOURCES
cd /root/rpmbuild/SPECS && \
    rpmbuild \
    -D "version 1.1.1t" \
    -ba openssl.spec

Nota: ¡
Existen riesgos al actualizar a una versión superior de openssl !

Nota 1: Recuerde actualizar esta versión. La versión openssl 1.1.1t es una actualización iterativa forzada.

  • No puede desinstalar el openssl original por adelantado. Por ejemplo: rpm -e openssl-1.0.2k-21.el7_9.x86_64
  • Openssl 1.1.1t no se puede actualizar directamente, por ejemplo: rpm -Uvh openssl-1.1.1t-1.el7.x86_64.rpm

actualización de centos7 openssl 1.1.1t

# 强制安装 忽略依赖
[root@localhost x86_64]# rpm -ivh openssl-1.1.1t-1.el7.centos.x86_64.rpm --nodeps --force
Preparing...                          ################################# [100%]
Updating / installing...
   1:openssl-1.1.1t-1.el7.centos      ################################# [100%]
 
[root@localhost openssh-8.7p1]# openssl version
OpenSSL 1.0.2k-fips  26 Jan 2017

Nota:
Los enlaces suaves no se pueden eliminar directamente.
Si necesita utilizar una nueva versión para el desarrollo, debe reemplazar el puntero del enlace suave original, es decir, reemplazar la biblioteca dinámica original y actualizar la versión.
Reemplace las bibliotecas dinámicas correspondientes que existen en /lib(lib64) y /usr/lib(lib64) y /usr/local/lib(lib64):

ln -sf /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so
ln -sf /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so

Supongo que te gusta

Origin blog.csdn.net/weixin_42602433/article/details/129800947
Recomendado
Clasificación