Red Hat Training

A Red Hat training course is available for RHEL 8

60.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 文件中,如 第 60.4 节 “使用 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 地址。

流程

  1. 安装 mod_ssl 软件包:

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

    1. 设置服务器名称:

      ServerName my_company.idm.example.com
      重要

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

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

      ServerAlias www.my_company.idm.example.com server.my_company.idm.example.com
    3. 设置到私钥、服务器证书和 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. 在本地防火墙中打开端口 443:

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

    # systemctl restart httpd
    注意

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

    • 使用浏览器并连接到

其它资源