天天看点

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 客户上安装

总结

继续阅读