搜索

1.14. 从 NSS 数据库导出私钥和证书,以便在 Apache Web 服务器配置中使用它们

download PDF

RHEL 8 不再为 Apache web 服务器提供mod_nss 模块,红帽建议使用mod_ssl模块。如果您将私钥和证书存储在网络安全服务(NSS)数据库中,例如,因为您将 web 服务器从 RHEL 7 迁移了到 RHEL 8,请按照以下步骤以 Privacy Enhanced Mail(PEM)格式提取密钥和证书。然后,您可以使用 mod_ssl 配置中的文件,如 在 Apache HTTP 服务器上配置 TLS 加密 中所述。

这个过程假设 NSS 数据库存储在 /etc/httpd/alias/中,并将导出的私钥和证书存储在/etc/pki/tls/目录中。

先决条件

  • 私钥、证书和证书颁发机构(CA)证书存储在 NSS 数据库中。

流程

  1. 列出 NSS 数据库中的证书:

    # certutil -d /etc/httpd/alias/ -L
    Certificate Nickname           Trust Attributes
                                   SSL,S/MIME,JAR/XPI
    
    Example CA                     C,,
    Example Server Certificate     u,u,u

    在下一步中需要证书的别名。

  2. 要提取私钥,您必须临时将密钥导出到一个 PKCS #12 文件:

    1. 使用与私钥关联的证书的别名,将密钥导出到一个 PKCS #12 文件:

      # pk12util -o /etc/pki/tls/private/export.p12 -d /etc/httpd/alias/ -n "Example Server Certificate"
      Enter password for PKCS12 file: password
      Re-enter password: password
      pk12util: PKCS12 EXPORT SUCCESSFUL

      请注意,您必须在 PKCS #12 文件中设置一个密码。下一步需要这个密码。

    2. 从 PKCS #12 文件中导出私钥:

      # openssl pkcs12 -in /etc/pki/tls/private/export.p12 -out /etc/pki/tls/private/server.key -nocerts -nodes
      Enter Import Password: password
      MAC verified OK
    3. 删除临时 PKCS #12 文件:

      # rm /etc/pki/tls/private/export.p12
  3. /etc/pki/tls/private/server.key设置权限,以确保只有root用户才可以访问该文件:

    # chown root:root /etc/pki/tls/private/server.key
    # chmod 0600 /etc/pki/tls/private/server.key
  4. 使用 NSS 数据库中的服务器证书的别名导出 CA 证书:

    # certutil -d /etc/httpd/alias/ -L -n "Example Server Certificate" -a -o /etc/pki/tls/certs/server.crt
  5. /etc/pki/tls/certs/server.crt设置权限,以确保只有root用户才可以访问该文件:

    # chown root:root /etc/pki/tls/certs/server.crt
    # chmod 0600 /etc/pki/tls/certs/server.crt
  6. 使用 NSS 数据库中 CA 证书的别名导出 CA 证书:

    # certutil -d /etc/httpd/alias/ -L -n "Example CA" -a -o /etc/pki/tls/certs/ca.crt
  7. 按照 在 Apache HTTP 服务器上配置 TLS 加密 来配置 Apache web 服务器,并:

    • SSLCertificateKeyFile参数设置为/etc/pki/tls/private/server.key
    • SSLCertificateFile参数设置为/etc/pki/tls/certs/server.crt
    • SSLCACertificateFile参数设置为/etc/pki/tls/certs/ca.crt

其它资源

  • certutil (1) 手册页
  • pk12util(1) 手册页
  • pkcs12(1ssl) 手册页
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.