22.7. 在 Apache HTTP 服务器中添加 TLS 加密
您可以对 idm.example.com
域的 my_company.idm.example.com
Apache HTTP 服务器启用 TLS 加密。
先决条件
-
my_company.idm.example.com
Apache HTTP 服务器已安装并运行。 -
您已从 webserver-ca 子 CA 获取了 TLS 证书,并将其存储在
/etc/pki/tls/certs/httpd.pem
文件中,如使用 certmonger 获取服务的 IdM 证书 中所述。如果您使用其他路径,请调整该流程的对应步骤。 -
对应的私钥存储在
/etc/pki/tls/private/httpd.key
文件中。如果您使用其他路径,请调整该流程的对应步骤。 -
webserver-ca CA 证书存储在
/etc/pki/tls/private/sub-ca.crt
文件中。如果您使用其他路径,请调整该流程的对应步骤。 - 客户端和 my_company.idm.example.com Web 服务器会将服务器的主机名解析为 web 服务器的 IP 地址。
- 如果服务器运行 RHEL 9.2 或更高版本,并且启用了 FIPS 模式,则客户端必须支持 Extended Master Secret(EMS)扩展或使用 TLS 1.3。没有 EMS 的 TLS 1.2 连接会失败。如需更多信息,请参阅 强制 TLS 扩展"Extended Master Secret" 知识库文章。
步骤
安装
mod_ssl
软件包:# dnf install mod_ssl
编辑
/etc/httpd/conf.d/ssl.conf
文件,并将以下设置添加到<VirtualHost _default_:443>
指令中:设置服务器名称:
ServerName my_company.idm.example.com
重要服务器名称必须与证书的
Common Name
字段中设置的条目匹配。可选:如果证书在
Subject Alt Names
(SAN)字段中包含额外的主机名,您可以 配置mod_ssl
来为这些主机名提供 TLS 加密。要配置此功能,请添加具有对应名称的ServerAliases
参数:ServerAlias www.my_company.idm.example.com server.my_company.idm.example.com
设置到私钥、服务器证书和 CA 证书的路径:
SSLCertificateKeyFile "/etc/pki/tls/private/httpd.key" SSLCertificateFile "/etc/pki/tls/certs/httpd.pem" SSLCACertificateFile "/etc/pki/tls/certs/ca.crt"
出于安全考虑,配置成只有
root
用户才可以访问私钥文件:# chown root:root /etc/pki/tls/private/httpd.key # chmod 600 //etc/pki/tls/private/httpd.key
警告如果私钥被设置为可以被未授权的用户访问,则需要撤销证书,然后再创建一个新私钥并请求一个新证书。否则,TLS 连接就不再安全。
如果您使用
firewalld
,请在本地防火墙中打开端口443
:# firewall-cmd --permanent --add-port=443/tcp # firewall-cmd --reload
重启
httpd
服务:# systemctl restart httpd
注意如果您使用密码来保护私钥文件,则必须在每次
httpd
服务启动时都输入此密码。-
使用浏览器并连接到
https://my_company.idm.example.com
。
-
使用浏览器并连接到