Red Hat Training

A Red Hat training course is available for RHEL 8

76.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 的服务的 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 地址。

流程

  1. 安装 mod_ssl 软件包:

    # yum install mod_ssl
  2. 编辑/etc/httpd/conf.d/ssl.conf文件,并将以下设置添加到 <VirtualHost _default_:443>指令中:

    1. 设置服务器名称:

      ServerName my_company.idm.example.com
    重要

    服务器名称必须与证书的 Common Name字段中设置的条目匹配。

    1. 可选:如果证书在 Subject Alt Names (SAN)字段中包含额外的主机名,您可以 配置mod_ssl来为这些主机名提供 TLS 加密。要配置此功能,请添加具有对应名称的ServerAliases参数:

      ServerAlias www.my_company.idm.example.com server.my_company.idm.example.com
    2. 设置到私钥、服务器证书和 CA 证书的路径:

      SSLCertificateKeyFile "/etc/pki/tls/private/httpd.key"
      SSLCertificateFile "/etc/pki/tls/certs/httpd.pem"
      SSLCACertificateFile "/etc/pki/tls/certs/ca.crt"
  3. 出于安全考虑,配置成只有 root 用户才可以访问私钥文件:

    # chown root:root /etc/pki/tls/private/httpd.key
    # chmod 600 //etc/pki/tls/private/httpd.key
    警告

    如果私钥被设置为可以被未授权的用户访问,则需要撤销证书,然后再创建一个新私钥并请求一个新证书。否则,TLS 连接就不再安全。

  4. 如果您使用 firewalld,在本地防火墙中打开端口 443

    # firewall-cmd --permanent --add-port=443/tcp
    # firewall-cmd --reload
  5. 重启httpd服务:

    # systemctl restart httpd
    注意

    如果您使用密码来保护私钥文件,则必须在每次 httpd服务启动时都输入此密码。

    • 使用浏览器并连接到 https://my_company.idm.example.com