概述
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
2、准备编译rpm环境
1、准备工作目录。进入家目录,创建工作目录(这里我以普通具有sudo权限用户为例)
mkdir -p rpmbuild/{SOURCES,RPMS,SPECS,BUILD,BUILDROOT,SRPMS}
2、安装需要用到的软件包(提前准备好epel源)
sudo yum install -y gcc make perl rpm-build rpmlint perl-WWW-Curl
3、将SPEC文件放到SPECS目录中
下面是一个示例,可以供参考
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目录中
5 在用家目录中执行制作rpm命令
rpmbuild -ba rpmbuild/SPECS/openssl.spec
在过了一段时间,并且没有报错的情况下就如下图的样子。
在RPMS的目录也有对应RPM包