Estoy tratando de usar el atributo 'userCertificate' para contener un archivo 'der'.
Puedo agregar felizmente mi certificado usando ldif:
dn:cn=bob,ou=users,dc=home
Veo mi certificado en codificación base64 cuando hago una búsqueda ldap y la vida parece buena. Pero cuando trato de usar ldapcompare:
ldapcompare -D”cn=admin,dc=home” -W “cn=bob,ou=users,dc=home” “userCertificate;binary:
Me sale el error:
Resultado de la comparación:sintaxis no válida (21)
Recibo el mismo error si trato de comparar usando la codificación base64
ldapcompare -D”cn=admin,dc=inicio” -W “cn=bob,ou=usuarios,dc=inicio” “userCertificate::base64encodedStringOfStuff”
¿Alguna idea?
Acabo de recibir este error:ldap_modify:tipo de atributo no definido (17) información adicional:certificado de usuario:requiere; transferencia binaria.
Este mensaje de error se refiere bastante claramente a lo que se exige en RFC 4523, sección 2.1. Simplemente siempre tienes que agregar
ldap_msgfree ldap_err2string Resultado de la comparación:sintaxis no válida (21) Información adicional:no se puede normalizar el valor para la coincidencia UNDEFINED
Al usar la operación de comparación, debe observar qué IGUALDAD la regla de coincidencia está disponible para el atributo de aserción.
En subesquema userCertificate se declara con
Por lo tanto, debe extraer el número de serie decimal y el DN del emisor (representación de cadena LDAP) del certificado:
Convierta la serie hexadecimal a decimal, que es
Notas adicionales:
tipo de cambio:modificar
agregar:certificado de usuario;binario
certificado de usuario;binario:
Información adicional:no se puede normalizar el valor para la coincidencia
SIN DEFINIRRespuesta aceptada:
;binary
al nombre del atributo en todas las operaciones LDAP que afecten al atributo userCertificate .EQUALITY certificateExactMatch
basado en el nombre del emisor y el número de serie (consulte RFC 4523, sección 2.5), lo que significa que no hay una coincidencia de cadena de octetos pura disponible para ese atributo.$ openssl x509 -noout -nameopt rfc2253 -serial -issuer -inform der -in ~/certs/[email protected]
serial=0F560E
issuer=CN=StartCom Class 1 Primary Intermediate Client CA,OU=Secure Digital Certificate Signing,O=StartCom Ltd.,C=IL
1005070
en este ejemplo e invoque ldapcompare así:ldapcompare "cn=Michael Strö[email protected],dc=stroeder,dc=de" 'userCertificate;binary:{ serialNumber 1005070, issuer "cn=StartCom Class 1 Primary Intermediate Client CA,ou=Secure Digital Certificate Signing,o=StartCom Ltd.,c=IL"}'
TRUE
Relacionado:¿Problemas de sincronización de iPhone/iPod/iPad?
que necesitan un tratamiento especial en la línea de comandos de shell.
Por lo tanto, usaría un lenguaje de secuencias de comandos para evitar esta tarea
algunos de los problemas.;binary
tipo de transferencia para la operación de comparación. Pero con OpenLDAP tampoco le dolerá. No estoy seguro acerca de otras implementaciones de servidor LDAP.