在CentOS/Linux上安全升级至TLS 1.3(保存所有Apache配置文件)
在CentOS/Linux上安全升级至TLS 1.3(保存所有Apache配置文件)
最近我在CentOS服务器上折腾启用TLS 1.3支持,踩了不少小坑,现在把完整的操作流程整理出来,重点强调升级Apache时一定要保住所有配置文件,避免之前的自定义设置丢失。
一、先升级OpenSSL(TLS 1.3依赖高版本OpenSSL)
我已经把OpenSSL升级到了1.1.1k版本,用命令验证的结果如下:
openssl version # 输出: OpenSSL 1.1.1k 25 Mar 2021
具体安装步骤:
- 先安装编译所需的依赖包,避免后续报错:
yum -y update yum install -y make gcc perl-core pcre-devel wget zlib-devel
- 下载并编译安装OpenSSL:
wget https://ftp.openssl.org/source/openssl-1.1.1k.tar.gz tar -xzvf openssl-1.1.1k.tar.gz cd openssl-1.1.1k ./config --prefix=/usr --openssldir=/etc/ssl --libdir=lib no-shared zlib-dynamic make
- 配置系统库路径,让系统能识别新安装的OpenSSL:
创建/etc/profile.d/openssl.sh文件,写入以下内容:
export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64
二、发现Apache版本不足,需要升级
查资料才知道,Apache版本2.4.36及以后才原生支持TLS 1.3,但我当前的Apache版本是:
httpd -v # 输出: Server version: Apache/2.4.6 (CentOS)
这个版本肯定满足不了要求,所以必须升级Apache,但升级前的备份操作是重中之重,绝对不能省!
升级前的备份操作(一定要做)
- 备份Apache主配置文件:
cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak
- 备份所有虚拟主机配置目录(如果有自定义站点):
cp -r /etc/httpd/conf.d/ /etc/httpd/conf.d.bak/
- 备份模块配置目录:
cp -r /etc/httpd/conf.modules.d/ /etc/httpd/conf.modules.d.bak/
升级Apache(CentOS 7为例)
默认yum源里的Apache版本太低,我们可以通过启用第三方源来获取支持TLS 1.3的高版本:
- 先安装EPEL源:
yum install -y epel-release
- 安装Remi源:
yum install -y remi-release
- 启用Apache 2.4的高版本仓库:
yum-config-manager --enable remi-httpd24
- 执行升级操作:
yum update -y httpd
- 验证升级后的版本:
httpd -v
确认版本号达到2.4.36及以上就符合要求了。
三、配置Apache启用TLS 1.3
升级完成后,编辑Apache的SSL配置文件(一般是/etc/httpd/conf.d/ssl.conf),修改协议和加密套件配置:
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 +TLSv1.2 +TLSv1.3 SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
保存配置后重启Apache服务:
systemctl restart httpd
可以用下面的命令测试TLS 1.3是否生效:
openssl s_client -connect 你的域名或IP:443 -tls1_3
备注:内容来源于stack exchange,提问作者Nikola Lukic
相关产品推荐
相关产品推荐

