我在 Centos7 上运行的 openldap-servers-2.4.39-3.el7.x86_64 标准方案中将特定证书添加到 userCertificate 属性(DER编码证书)中时遇到了麻烦
Slapd 用途:
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
我使用 Apache Dir Studio(最新版本:2.0.0.v20130628,2015.07.30)
然后我将证书加载到 userCertificate 属性中,它显示了所有证书字段,但是我按 OK LDAP 返回错误:
#!ERROR [LDAP: error code 21 - userCertificate;binary: value #0 normalization failed]
命令:
openssl x509 -in ./shit_cert.cer -inform DER -text
工作正常,没有错误。
来自此 CA 的其他证书可以加载到此 salpd userCertificate 属性中。
顺便说一下,这是俄罗斯 Crypto-Pro CA(http://www.cryptopro.ru/products/ca) 证书,我猜这个特定的证书有一些 x509 扩展。
来自此 CA 的其他证书正确加载。
有人能帮忙解决一下吗
附言
如果我使用命令行加载证书会出现类似的错误
cat ./cer.ldif
dn: cn=anisimov,o=000,dc=aaa,dc=bbb
changetype: modify
add: userCertificate;binary
userCertificate;binary:< file:///root/wrong_certs/shit_cert.cer
# ldapmodify -v -x -W -D "cn=Manager,dc=aaa,dc=bbb" -f ./cer.ldif
ldap_initialize( <DEFAULT> )
Enter LDAP Password:
add userCertificate;binary:
NOT ASCII (1831 bytes)
modifying entry "cn=anisimov,o=000,dc=aaa,dc=bbb"
ldap_modify: Invalid syntax (21)
additional info: userCertificate;binary: value #0 normalization failed
slapd.conf 文件中的 slap LogLevel -1 告诉我以下内容:
авг 03 14:33:36 centos7.000.ru slapd[13909]: conn=1000 op=13 MOD dn="cn=anisimov,o=000,dc=aaa,dc=bbb"
авг 03 14:33:36 centos7.000.ru slapd[13909]: conn=1000 op=13 MOD attr=userCertificate;binary
авг 03 14:33:36 centos7.000.ru slapd[13909]: <= str2entry NULL (ssyn_normalize 21)
авг 03 14:33:36 centos7.000.ru slapd[13909]: conn=1000 op=13 RESULT tag=103 err=21 text=userCertificate;binary: value #0 normalization failed
авг 03 14:33:36 centos7.000.ru slapd[13909]: conn=1000 op=14 SRCH base="cn=anisimov,o=000,dc=aaa,dc=bbb" scope=0 deref=3 filter="(objectClass=*)"
авг 03 14:33:36 centos7.000.ru slapd[13909]: conn=1000 op=14 SRCH attr=*
авг 03 14:33:36 centos7.000.ru slapd[13909]: conn=1000 op=14 SEARCH RESULT tag=101 err=0 nentries=1 text=