2016-12-09 2 views
1

Ich verwende PyOpenSSL, das ist der dünne Wrapper von OpenSSL, um die Erweiterung 'Subject Directory Attribute' zu einem Zertifikat von einem Python-Programm hinzuzufügen. Die Erweiterung Namen ‚subjectDirAttrs‘ und ‚Subject‘ versucht worden, aber der Fehler auftritt:Unterstützt OpenSSL die Erweiterung 'subject directory attributes'?

"OpenSSL.crypto.Error: [('X509 V3 routines', 'DO_EXT_NCONF', 'unknown extension name'), ('X509 V3 routines', 'X509V3_EXT_nconf', 'error in extension')]". 

Wie pyopenssl die Umhüllung von OpenSSL ist, kann jeder deutlich machen, dass, ob OpenSSL die Erweiterung ‚subject Verzeichnisattribute‘ unterstützt und Was ist der richtige Name für die Programmierung, wenn OpenSSL dies unterstützt?

Die andere Frage ist der Fehler wird wie folgt gemeldet, wenn ich die Erweiterung 'Zertifikatsrichtlinien' zu einem Zertifikat von PyOpenSSL hinzufügen.

"OpenSSL.crypto.Error: [('X509 V3 routines', 'DO_EXT_NCONF', 'no config database'), ('X509 V3 routines', 'X509V3_EXT_nconf', 'error in extension')]" 

Was ist die Konfigurationsdatenbank? Bezieht es sich auf /usr/local/ssl/openssl.cnf? Wie verwende ich es, um die Erweiterung 'Zertifikatsrichtlinien' von PyOpenSSL zu einem Zertifikat hinzuzufügen? Vielen Dank!

Antwort

0

Unterstützt OpenSSL die Erweiterung 'subject directory attributes'?

Es hängt irgendwie davon ab. OpenSSL kann mit einem Zertifikat arbeiten, das sie enthält, was bedeutet, dass die Dinge nicht mit einem "nicht unterstützten" Fehler fehlschlagen werden, wenn sie vorhanden sind. Das Problem ist, dass nichts verfügbar ist, um sie für Benutzerprogramme zu parsen. Sie müssen Ihre eigene Parsing-Logik rollen.

Siehe auch How to parse Subject Directory Attributes Extension? auf der OpenSSL-Benutzer-Mailing-Liste. Der Thread bietet einige Vorschläge zum Parsen. Hier ist aus dem Thread:

  • „Jemand hätte ASN1-Parsing-Code schreiben Es gibt Beispiele überall in OpenSSL, siehe die verschiedenen d2i_XXX und i2d_XXX Funktionen Es Makro werden/definieren die zur Verfügung stellen die.. Job einfacher, aber es ist nicht wirklich dokumentiert. "

  • „Sieht aus wie der Typ nicht X509_NAME_ENTRY ist aber X509_ATTRIBUTE und die Erweiterung ist eine Folge von Attribut. Wir haben nicht die direkte Entsprechung als spezifische Typ IIRC haben, aber es ist nicht schwer fügen man folgt einfach dem, was für GENERAL_NAMES getan wird, was eine SEQUENZ VON GENERAL_NAME ist ... Sie können entweder eine benutzerdefinierte Erweiterung hinzufügen oder die Struktur einfach aus dem Extentsion-Inhalt analysieren. "

Verwandte Themen