Ich versuche, das Attribut „userCertificate“ zu verwenden, um eine „der“-Datei zu speichern.
Ich kann mein Zertifikat gerne mit ldif hinzufügen:
dn:cn=bob,ou=users,dc=home
Ich sehe mein Zertifikat in Base64-Codierung, wenn ich eine LDAP-Suche durchführe, und das Leben scheint gut zu sein. Aber wenn ich versuche, ldapcompare zu verwenden:
ldapcompare -D „cn=admin,dc=home“ -W „cn=bob,ou=users,dc=home“ „userCertificate;binary:
Ich bekomme den Fehler:
Vergleichsergebnis:Ungültige Syntax (21)
Ich erhalte denselben Fehler, wenn ich versuche, mit der base64-Codierung zu vergleichen
ldapcompare -D „cn=admin,dc=home“ -W „cn=bob,ou=users,dc=home“ „userCertificate::base64encodedStringOfStuff“
Irgendwelche Ideen?
Ich bekomme nur diesen Fehler:ldap_modify:Undefinierter Attributtyp (17) zusätzliche Informationen:Benutzerzertifikat:erfordert;Binärübertragung.
Diese Fehlermeldung bezieht sich ziemlich eindeutig auf das, was in RFC 4523, Abschnitt 2.1 vorgeschrieben ist. Sie müssen einfach immer
ldap_msgfree ldap_err2string Vergleichsergebnis:Ungültige Syntax (21) Zusätzliche Informationen:Wert kann nicht für Übereinstimmung mit UNDEFINED normalisiert werden
Bei der Verwendung von Vergleichsoperationen müssen Sie auf die GLEICHHEIT achten Übereinstimmungsregel ist für das Assertion-Attribut verfügbar.
Im Unterschema userCertificate wird mit
Sie müssen also die dezimale Seriennummer und den Aussteller-DN (LDAP-String-Darstellung) aus dem Zertifikat extrahieren:
Wandeln Sie hexadezimal seriell in dezimal um, was
Zusätzliche Anmerkungen:
changetype:modify
add:userCertificate;binary
userCertificate;binary:
Zusätzliche Informationen:Wert für Übereinstimmung kann nicht normalisiert werden
UNDEFINEDAkzeptierte Antwort:
;binary
anhängen zum Attributnamen in allen LDAP-Operationen, die das Attribut userCertificate betreffen .EQUALITY certificateExactMatch
deklariert basierend auf dem Ausstellernamen und der Seriennummer (siehe RFC 4523 Abschnitt 2.5), was bedeutet, dass für dieses Attribut kein reiner Oktett-String-Match verfügbar ist.$ 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
ist in diesem Beispiel und rufen Sie ldapcompare auf so: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
Verwandt:IPhone / iPod / iPad Synchronisierungsprobleme?
maskiert werden müssen, die in der Shell-Befehlszeile besonders behandelt werden müssen.
Daher würde ich für diese Aufgabe eine Skriptsprache verwenden, um dies zu vermeiden
einige der Probleme.;binary
nicht Übertragungsart für Vergleichsoperation. Aber mit OpenLDAP wird es auch nicht schaden. Bei anderen Implementierungen von LDAP-Servern bin ich mir nicht sicher.