ldapadd -x -H ldap://estds.example.com:389 \
-D "cn=Directory Manager" -w Secret.123 << EOF
dn: uid=est-test-user,ou=people,dc=est,dc=pki,dc=example,dc=com
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
uid: est-test-user
sn: EST TEST USER
cn: EST TEST USER
userPassword: Secret.123
EOF
ldapmodify -x -H ldap://estds.example.com:389 \
-D "cn=Directory Manager" -w Secret.123 << EOF
dn: cn=EST Users,ou=groups,dc=est,dc=pki,dc=example,dc=com
changetype: modify
add: uniqueMember
uniqueMember: uid=est-test-user,ou=People,dc=est,dc=pki,dc=example,dc=com
EOF
ldapadd -x -H ldap://estds.example.com:389 \
-D "cn=Directory Manager" -w Secret.123 << EOF
dn: uid=est-test-user,ou=people,dc=est,dc=pki,dc=example,dc=com
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
uid: est-test-user
sn: EST TEST USER
cn: EST TEST USER
userPassword: Secret.123
EOF
ldapmodify -x -H ldap://estds.example.com:389 \
-D "cn=Directory Manager" -w Secret.123 << EOF
dn: cn=EST Users,ou=groups,dc=est,dc=pki,dc=example,dc=com
changetype: modify
add: uniqueMember
uniqueMember: uid=est-test-user,ou=People,dc=est,dc=pki,dc=example,dc=com
EOF
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
以上配置允许使用 用户名/密码 进行客户端身份验证。在某些情况下,或 用于特定操作,如重新注册新证书,则需要使用客户端证书进行 mutual 身份验证。
域配置已经支持基于证书的身份验证,但为了验证用户,需要一些额外的信息。更加详细,用户条目必须包含包含一些证书详情和二进制证书 的描述。
描述 的格式有 < Version>;<Serial>;<Issuer>;<subject
>。version 是十六进制值(不包括 0x),串行是十进制和签发者,subject 是可分辨名称(DN)。DN 的格式是从更具体的属性到更常规的属性(注意:一些工具,如 OpenSSL,具有不同的顺序),用逗号分开。例如,如果用户有以下值的证书:
openssl x509 -in cert.pem -subject -serial -issuer -text -noout |head -11
$ openssl x509 -in cert.pem -subject -serial -issuer -text -noout |head -11
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
33:1c:9e:b7:9a:2d:cc:17:69:24:a2:81:4e:06:07:40
Signature Algorithm: sha256WithRSAEncryption
Issuer: O=EXAMPLE, OU=pki-tomcat, CN=CA Signing Certificate
Validity
Not Before: Jan 16 11:31:11 2025 GMT
Not After : Apr 16 11:31:11 2025 GMT
Subject: CN=test.example.com
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
然后,可以使用命令在 DS 问题单中修改上面定义的用户条目 est-test-user
:
ldapmodify -H ldap://ds.example.com:3389 \
-D "cn=Directory Manager" -w Secret.123 <<EOF
$ ldapmodify -H ldap://ds.example.com:3389 \
-D "cn=Directory Manager" -w Secret.123 <<EOF
dn: uid=est-test-user,ou=people,dc=est,dc=pki,dc=example,dc=com
changetype: modify
add: description
description: 2;67939231264256858734977554404570695488;CN=CA Signing Certificate,OU=pki-tomcat,O=EXAMPLE;CN=test.example.com
-
add: userCertificate
userCertificate::<certificate_base64>
EOF
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
将 & lt;certificate_base64&
gt; 替换为实际值。要从 DER 证书获取值,可以使用以下命令:
openssl base64 -in cert.der | sed 's/^/ /'
$ openssl base64 -in cert.der | sed 's/^/ /'
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow