8.3. 为 Identity 服务配置安全 LDAP 通信


使用以下方法之一为 Identity 服务(keystone)配置 LDAP。

方法 1

如果使用 PEM 文件在 LDAP 级别配置 CA 信任,则使用此方法。手动指定 CA 证书文件的位置。以下流程保护 LDAP 通信不仅针对 Identity 服务,还用于所有使用 OpenLDAP 库的应用程序。

  1. 将包含 PEM 格式的 CA 证书链的文件复制到 /etc/openldap/certs 目录。
  2. 编辑 /etc/openldap/ldap.conf 并添加以下指令,将 [CA_FILE] 替换为 CA 证书文件的位置和名称:

    TLS_CACERT /etc/openldap/certs/[CA_FILE]
    Copy to Clipboard Toggle word wrap
  3. 重启 horizon 容器:

    # systemctl restart tripleo_horizon
    Copy to Clipboard Toggle word wrap

方法 2

如果使用网络安全服务(NSS)数据库在 LDAP 库级别配置了 CA 信任,则使用此方法。使用 certutil 命令将 CA 证书导入并信任到 OpenLDAP 库使用的 NSS 证书数据库中。以下流程保护 LDAP 通信不仅针对 Identity 服务,还用于所有使用 OpenLDAP 库的应用程序。

  1. 导入并信任证书,将 [CA_FILE] 替换为 CA 证书文件的位置和名称:

    # certutil -d /etc/openldap/certs -A -n "My CA" -t CT,, -a -i [CA_FILE]
    # certutil -d /etc/openldap/certs -A -n "My CA" -t CT,, -a -i [CA_FILE]
    Copy to Clipboard Toggle word wrap
  2. 确认正确导入了 CA 证书:

    # certutil -d /etc/openldap/certs -L
    Copy to Clipboard Toggle word wrap

    您的 CA 证书被列出,信任属性被设置为 CT、

  3. 重启 horizon 容器:

    # systemctl restart tripleo_horizon
    Copy to Clipboard Toggle word wrap

方法 3

如果使用 PEM 文件在 Keystone 级别配置了 CA 信任,则使用此方法。保护 Identity 服务和 LDAP 服务器之间的通信的最终方法是为 Identity 服务配置 TLS。

但是,与上述两种方法不同,此方法只保护 Identity 服务的 LDAP 通信,对使用 OpenLDAP 库的其他应用程序不会保护 LDAP 通信。以下流程使用 openstack-config 命令编辑 /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf 文件中的值。

  1. 启用 TLS:

    # openstack-config --set /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf ldap use_tls True
    Copy to Clipboard Toggle word wrap
  2. 指定证书的位置,将 [CA_FILE] 替换为 CA 证书的名称:

    # openstack-config --set /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf ldap tls_cacertfile [CA_FILE]
    Copy to Clipboard Toggle word wrap
  3. 指定在 LDAP 服务器传入的 TLS 会话上执行的客户端证书检查,将 [CERT_BEHAVIOR] 替换为以下列出的行为之一:

    需求
    将始终从 LDAP 服务器请求证书。如果未提供证书,则会话将被终止,或者无法针对现有的证书颁发机构文件验证提供的证书。
    allow
    将始终从 LDAP 服务器请求证书。即使未提供证书,会话也会正常进行。如果提供了证书,但无法针对现有的证书颁发机构文件进行验证,则证书将被忽略,会话将正常进行。
    never
    永远不会请求证书。
    # openstack-config --set /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf ldap tls_req_cert [CERT_BEHAVIOR]
    Copy to Clipboard Toggle word wrap
  4. 重启 keystone 和 horizon 容器:

    # systemctl restart tripleo_keystone
    # systemctl restart tripleo_horizon
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat