80.7. 在 Apache HTTP 服务器中添加 TLS 加密
您可以对 idm.example.com 域的 my_company.idm.example.com Apache HTTP 服务器启用 TLS 加密。
先决条件
-
my_company.idm.example.comApache HTTP 服务器已安装并在运行。 -
您已从 webserver-ca 子 CA 获取 TLS 证书,并将其存储在
/etc/pki/tls/certs/httpd.pem文件中,如使用 certmonger 的服务的 Obtaining 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 地址。
流程
安装
mod_ssl软件包:yum install mod_ssl
# yum install mod_sslCopy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑
/etc/httpd/conf.d/ssl.conf文件,并将以下设置添加到<VirtualHost _default_:443>指令中:设置服务器名称:
ServerName my_company.idm.example.com
ServerName my_company.idm.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow
重要服务器名称必须与证书的
Common Name字段中设置的条目匹配。可选:如果证书在
Subject Alt Names(SAN)字段中包含额外的主机名,您可以 配置mod_ssl来为这些主机名提供 TLS 加密。要配置此功能,请添加具有对应名称的ServerAliases参数:ServerAlias www.my_company.idm.example.com server.my_company.idm.example.com
ServerAlias www.my_company.idm.example.com server.my_company.idm.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 设置到私钥、服务器证书和 CA 证书的路径:
SSLCertificateKeyFile "/etc/pki/tls/private/httpd.key" SSLCertificateFile "/etc/pki/tls/certs/httpd.pem" SSLCACertificateFile "/etc/pki/tls/certs/ca.crt"
SSLCertificateKeyFile "/etc/pki/tls/private/httpd.key" SSLCertificateFile "/etc/pki/tls/certs/httpd.pem" SSLCACertificateFile "/etc/pki/tls/certs/ca.crt"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
出于安全考虑,配置成只有
root用户才可以访问私钥文件:chown root:root /etc/pki/tls/private/httpd.key chmod 600 //etc/pki/tls/private/httpd.key
# chown root:root /etc/pki/tls/private/httpd.key # chmod 600 //etc/pki/tls/private/httpd.keyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 警告如果私钥被设置为可以被未授权的用户访问,则需要撤销证书,然后再创建一个新私钥并请求一个新证书。否则,TLS 连接就不再安全。
如果您使用
firewalld,请在本地防火墙中打开端口443:firewall-cmd --permanent --add-port=443/tcp firewall-cmd --reload
# firewall-cmd --permanent --add-port=443/tcp # firewall-cmd --reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重启
httpd服务:systemctl restart httpd
# systemctl restart httpdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您使用密码来保护私钥文件,则必须在每次
httpd服务启动时都输入此密码。-
使用浏览器并连接到
https://my_company.idm.example.com
-
使用浏览器并连接到