7.5. 更新用于属性加密的 TLS 证书


属性加密基于服务器的 TLS 证书。按照以下步骤,在续订或替换 TLS 证书后防止属性加密失败。

前提条件

  • 您配置的属性加密。
  • TLS 证书将在不久的将来过期。

流程

  1. 导出 userRoot 数据库:

    # dsconf -D "cn=Directory Manager" ldap://server.example.com backend export -E userRoot

    服务器将导出存储在 /var/lib/dirsrv/slapd-instance_name/ldif/ 目录中的 LDIF 文件中。-E 选项解密导出期间已加密的属性。

  2. 创建私钥和证书签名请求(CSR)。如果要使用外部实用程序创建,请跳过这一步。

    • 如果您的主机只能由一个名称访问,请输入:

      # dsctl instance_name tls generate-server-cert-csr -s "CN=server.example.com,O=example_organization"
    • 如果您的主机可以通过多个名称访问:

      # dsctl instance_name tls generate-server-cert-csr -s "CN=server.example.com,O=example_organization" server.example.com server.example.net

      如果您将主机名指定为最后一个参数,该命令会使用 DNS:server.example. com、DNS:server.example.net 条目添加 Subject Alternative Name (SAN)扩展,来将 DNS:server.example.net 条目添加到 CSR。

    -s subject 参数中指定的字符串必须是根据 RFC 1485 的有效主题名称。主题中的 CN 字段是必需的,您必须将它设置为服务器的完全限定域名(FQDN)之一。该命令在 /etc/dirsrv/slapd-instance_name/Server-Cert.csr 文件中存储 CSR。

  3. 将 CSR 提交给证书颁发机构(CA)以获取签发证书。详情请查看您的 CA 文档。
  4. 将 CA 发布的服务器证书导入到 NSS 数据库:

    • 如果您使用 dsctl tls generate-server-cert-csr 命令创建私钥,请输入:

      # dsconf -D "cn=Directory Manager" ldap://server.example.com security certificate add --file /root/instance_name.crt --name "server-cert" --primary-cert

      请记住您在 --name _certificate_nickname参数中设置的证书名称。在后续步骤中需要它。

    • 如果您使用外部工具创建私钥,请导入服务器证书和私钥:

      # dsctl instance_name tls import-server-key-cert /root/server.crt /root/server.key

      请注意,命令要求您首先指定服务器证书的路径,然后指定私钥的路径。此方法始终将证书的 nickname 设置为 Server-Cert

  5. 将 CA 证书导入到 NSS 数据库:

    # dsconf -D "cn=Directory Manager" ldap://server.example.com security ca-certificate add --file /root/ca.crt --name "Example CA"
  6. 设置 CA 证书的信任标记:

    # dsconf -D "cn=Directory Manager" ldap://server.example.com security ca-certificate set-trust-flags "Example CA" --flags "CT,,"

    这会将 Directory 服务器配置为信任 CA 进行基于 TLS 加密和基于证书的身份验证。

  7. 停止实例:

    # dsctl instance_name stop
  8. 编辑 /etc/dirsrv/slapd-instance_name/dse.ldif 文件,并删除包括其属性的以下条目:

    • cn=AES,cn=encrypted 属性键,cn=database_name,cn=ldbm database,cn=plugins,cn=config
    • cn=3DES,cn=encrypted 属性键,cn=database_name,cn=ldbm database,cn=plugins,cn=config
    重要

    删除所有数据库的条目。如果包含 nsSymmetricKey 属性的任何条目保留在 /etc/dirsrv/slapd-instance_name/dse.ldif 文件中,则目录服务器将无法启动。

  9. 导入 LDIF 文件:

    # dsctl instance_name ldif2db --encrypted userRoot /var/lib/dirsrv/slapd-instance_name/ldif/None-userroot-2022_01_24_10_28_27.ldif

    --encrypted 参数可让脚本加密导入过程中为加密配置的属性。

  10. 启动实例:

    # dsctl instance_name start
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部