Sto cercando di utilizzare l'attributo "userCertificate" per contenere un file "der".
Posso aggiungere felicemente il mio certificato utilizzando ldif:
dn:cn=bob,ou=users,dc=home
Vedo il mio certificato nella codifica base64 quando eseguo un ldapsearch e la vita sembra buona. Ma quando provo a usare ldapcompare:
ldapcompare -D”cn=admin,dc=home” -W “cn=bob,ou=users,dc=home” “userCertificate;binary:
Ottengo l'errore:
Confronta Risultato:Sintassi non valida (21)
Ottengo lo stesso errore se provo a confrontare usando la codifica base64
ldapcompare -D”cn=admin,dc=home” -W “cn=bob,ou=users,dc=home” “userCertificate::base64encodedStringOfStuff”
Qualche idea?
Ho appena ricevuto questo errore:ldap_modify:tipo di attributo non definito (17) informazioni aggiuntive:usercertificate:richiede;trasferimento binario.
Questo messaggio di errore si riferisce abbastanza chiaramente a ciò che è obbligatorio nella RFC 4523, sezione 2.1. Devi semplicemente aggiungere sempre
ldap_msgfree ldap_err2string Risultato di confronto:sintassi non valida (21) Informazioni aggiuntive:impossibile normalizzare il valore per la corrispondenza UNDEFINED
Quando usi l'operazione di confronto devi guardare quale UGUAGLIANZA la regola di corrispondenza è disponibile per l'attributo asserzione.
Nel sottoschema userCertificate è dichiarato con
Quindi è necessario estrarre dal certificato il numero di serie decimale e il DN dell'emittente (rappresentazione della stringa LDAP):
Converti seriale esadecimale in decimale che è
Note aggiuntive:
changetype:modify
add:userCertificate;binary
userCertificate;binary:
Informazioni aggiuntive:impossibile normalizzare il valore per la corrispondenza
UNDEFINEDRisposta accettata:
;binary
al nome dell'attributo in tutte le operazioni LDAP che interessano l'attributo userCertificate .EQUALITY certificateExactMatch
in base al nome dell'emittente e al numero di serie (vedi RFC 4523 sezione 2.5), il che significa che non è disponibile una corrispondenza di stringa di ottetto puro per quell'attributo.$ 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
in questo esempio e invocare ldapcompare così: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
Correlati:Problemi di sincronizzazione di iPhone/iPod/iPad?
speciali che richiedono un trattamento speciale sulla riga di comando della shell.
Pertanto userei un linguaggio di scripting per evitare questo compito
alcuni dei problemi.;binary
tipo di trasferimento per l'operazione di confronto. Ma anche con OpenLDAP non farà male. Non sono sicuro di altre implementazioni del server LDAP.