天天看點

Centos7 編譯RPM包安裝openssl 1.1.1q

概述

Centos7雖然在2023年就要停止維護了,但是在現有的業務服務系統中還是存在非常大的計基數,并且現在Centos7的官方提供的更新包隻提供1.0.2k,顯然這個版本現在存在非常多的安全問題,為了讓更新變的簡單容易操作,并且不受限gcc編譯環境。以最新的openssl 1.1.1q版本為例,後續再測3.0版本。

操作

1、從官網下載下傳源碼包

官方提供的最新版的源碼包是2022年7月5日的。下載下傳連結如下:

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

Centos7 編譯RPM包安裝openssl 1.1.1q

2、準備編譯rpm環境

1、準備工作目錄。進入家目錄,建立工作目錄(這裡我以普通具有sudo權限使用者為例)

mkdir -p rpmbuild/{SOURCES,RPMS,SPECS,BUILD,BUILDROOT,SRPMS}
           
Centos7 編譯RPM包安裝openssl 1.1.1q

2、安裝需要用到的軟體包(提前準備好epel源)

sudo yum install -y gcc make perl rpm-build rpmlint perl-WWW-Curl
           

3、将SPEC檔案放到SPECS目錄中

下面是一個示例,可以供參考

Centos7 編譯RPM包安裝openssl 1.1.1q
Summary: OpenSSL 1.1.1q for Centos
Name: openssl
Version: %{?version}%{!?version:1.1.1q}
Release: 25%{?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.1q 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.1q on Centos (development package)

%prep
%setup -q

%build
./config --prefix=%{openssldir} --openssldir=%{openssldir} -fPIC
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
%changelog
* Fri Jul 22 2022 Ting - 1.1.1q
- Rebuilt for https://www.openssl.org/source/openssl-1.1.1q.tar.gz
           

4 将源碼包上傳到SOURCES目錄中

Centos7 編譯RPM包安裝openssl 1.1.1q

5 在用家目錄中執行制作rpm指令

rpmbuild -ba rpmbuild/SPECS/openssl.spec
           

在過了一段時間,并且沒有報錯的情況下就如下圖的樣子。

Centos7 編譯RPM包安裝openssl 1.1.1q

在RPMS的目錄也有對應RPM包

Centos7 編譯RPM包安裝openssl 1.1.1q

6 客戶上安裝

總結

繼續閱讀