7.2. 将证书添加到用户

当您设置基于证书的身份验证时,您可以配置服务器,以便用于身份验证的证书必须与用户 userCertificate 二进制文件中存储的证书匹配。如果您启用了这个功能,您必须将受影响用户的证书添加到其目录条目中。

前提条件

  • 在 Directory 服务器中启用了基于证书的身份验证。
  • 您有一个由服务器信任的证书颁发机构(CA)发布的客户端证书。
  • 客户端证书是可分辨的编码规则(DER)格式。
  • 客户端证书满足服务器上 /etc/dirsrv/slapd-instance_name/certmap.conf 中设置的要求。

流程

  1. 如果证书不是 DER 格式,请将其转换。例如,要将证书从隐私增强的邮件(PEM)转换为 DER,请输入:

    # openssl x509 -in /home/user_name/certificate.pem -out /home/user_name/certificate.der -outform DER
  2. 将证书添加到用户的 userCertificate 属性中:

    # ldapmodify -D "cn=Directory Manager" -W -H ldaps://server.example.com -x
    
    dn: uid=user_name,ou=People,dc=example,dc=com
    changetype: modify
    add: userCertificate
    userCertificate:< file:///home/user_name/example.der

验证

  1. 使用基于证书的身份验证以用户身份进行身份验证:

    1. 将以下环境变量设置为 CA 证书、用户密钥和用户证书的对应路径:

      LDAPTLS_CACERT=/home/user_name/CA.crt
      LDAPTLS_KEY=/home/user_name/user.key
      LDAPTLS_CERT=/home/user_name/user.der

      另外,还可在当前用户的 ~/.ldaprc 文件中设置 TLS_CACERTTLS_KEYTLS_CERT 参数。

    2. 连接到服务器:

      # ldapwhoami -H ldaps://server.example.com -Y EXTERNAL
      dn: uid=example,ou=people,dc=example,dc=com

其他资源

  • ldap.conf (5) man page 中的 TLS OPTIONS 部分