Hier ist eine umfangreiche Liste der Attribute, die in einem X.509-Zertifikat vorkommen können:

Standardattribute

  1. Version: Die Version des Zertifikats.
  2. Seriennummer: Eine eindeutige Seriennummer für das Zertifikat.
  3. Algorithmus-Identifikator für die Aussteller-Signatur: Der Algorithmus, der von der ausstellenden Zertifizierungsstelle für die Signatur verwendet wird.
  4. Aussteller (Issuer): Informationen über die ausstellende Zertifizierungsstelle.
  • Distinguished Name (DN): Name der Zertifizierungsstelle.
  • Ländercode (C): Das Land, in dem die Zertifizierungsstelle ansässig ist.
  • Organisation (O): Die Organisation, zu der die Zertifizierungsstelle gehört.
  • Organizational Unit (OU): Die organisatorische Einheit der Zertifizierungsstelle (optional).
  • Common Name (CN): Der allgemeine Name der Zertifizierungsstelle.
  • Gültigkeitsdauer: Das Gültigkeitsintervall des Zertifikats.
  • Gültig ab: Das Datum, ab dem das Zertifikat gültig ist.
  • Gültig bis: Das Datum, bis zu dem das Zertifikat gültig ist.
  • Inhaber (Subject): Informationen über den Inhaber des Zertifikats.
  • Distinguished Name (DN): Name des Zertifikatsinhabers.
  • Ländercode (C): Das Land, in dem der Inhaber ansässig ist.
  • Organisation (O): Die Organisation des Inhabers.
  • Organizational Unit (OU): Die organisatorische Einheit des Inhabers (optional).
  • Common Name (CN): Der allgemeine Name des Inhabers.
  • Öffentlicher Schlüssel: Der öffentliche Schlüssel des Inhabers.
  • Schlüsseltyp: Der Typ des öffentlichen Schlüssels (z. B. RSA, DSA, ECC).
  • Schlüssellänge: Die Länge des öffentlichen Schlüssels in Bits.
  • Öffentlicher Schlüssel: Der tatsächliche öffentliche Schlüssel.
  • Signaturalgorithmus: Der Algorithmus, der für die Signatur des Zertifikats verwendet wurde.
  • Signaturwert: Die tatsächliche Signatur des Zertifikats.
  • Erweiterungen: Dies können verschiedene optionale Erweiterungen sein, die zusätzliche Informationen enthalten können, wie z. B. Schlüsselverwendung, Beschränkungen und vieles mehr. Einige Beispiele sind:
    • Key Usage: Informationen über die Verwendung des Schlüssels.
    • Extended Key Usage: Erweiterte Informationen zur Schlüsselverwendung.
    • Subject Alternative Name: Alternative Namen des Inhabers.
    • Basic Constraints: Grundlegende Einschränkungen, z. B. ob das Zertifikat eine Zertifizierungsstelle sein kann.
    • Authority Key Identifier: Informationen zur Identifizierung der ausstellenden Zertifizierungsstelle.

Diese Liste deckt die grundlegenden Attribute in einem X.509-Zertifikat ab, aber es gibt viele weitere spezielle Attribute und Erweiterungen, die je nach Verwendungszweck und Anforderungen hinzugefügt werden können.

Spezielle Attribute und Erweiterungen

  1. Key Usage (Erweiterung): Gibt an, wie der öffentliche Schlüssel im Zertifikat verwendet werden darf, z. B. für digitale Signaturen, Verschlüsselung oder Zertifikatserstellung.
  2. Extended Key Usage (Erweiterung): Detaillierte Informationen zur erweiterten Verwendung des öffentlichen Schlüssels, z. B. für spezifische Anwendungen wie E-Mail-Sicherheit oder Client-Authentifizierung.
  3. Subject Alternative Name (Erweiterung): Erlaubt alternative Namen oder Identifikatoren für den Zertifikatsinhaber, wie E-Mail-Adressen oder DNS-Namen.
  4. Basic Constraints (Erweiterung): Definiert grundlegende Einschränkungen für das Zertifikat, wie z. B. ob es als Zertifizierungsstelle verwendet werden kann.
  5. Authority Key Identifier (Erweiterung): Enthält Informationen zur Identifizierung der ausstellenden Zertifizierungsstelle, wie z. B. den öffentlichen Schlüssel der Zertifizierungsstelle.
  6. Subject Key Identifier (Erweiterung): Enthält eine eindeutige Identifikation des öffentlichen Schlüssels des Zertifikatsinhabers.
  7. CRL Distribution Points (Erweiterung): Gibt an, wo die Zertifikatsperrliste (Certificate Revocation List – CRL) abgerufen werden kann.
  8. Authority Information Access (Erweiterung): Enthält Informationen zum Abrufen weiterer Details zur ausstellenden Zertifizierungsstelle, wie z. B. Zertifikate der übergeordneten Zertifizierungsstellen.
  9. Name Constraints (Erweiterung): Definiert Beschränkungen für die Namen, die im Zertifikat verwendet werden dürfen, z. B. für DNS-Namen oder E-Mail-Adressen.
  10. Policy Constraints (Erweiterung): Legt Beschränkungen für die Zertifikatsrichtlinien fest, die in einem Zertifikat verwendet werden dürfen.
  11. Inhibit Any-Policy (Erweiterung): Ermöglicht das vorübergehende Sperren bestimmter Zertifikatsrichtlinien.
  12. Private Key Usage Period (Erweiterung): Gibt an, in welchem Zeitraum der private Schlüssel des Zertifikatsinhabers verwendet werden darf.
  13. Certificate Policies (Erweiterung): Definiert die Zertifikatsrichtlinien, die für das Zertifikat gelten.
  14. Subject Directory Attributes (Erweiterung): Enthält zusätzliche Attribute des Zertifikatsinhabers, die im Verzeichnisdienst aufgeführt sind.
  15. Policy Mappings (Erweiterung): Erlaubt das Mapping von Zertifikatsrichtlinien zwischen verschiedenen Zertifizierungsstellen.
  16. Subject Information Access (Erweiterung): Enthält Informationen zum Abrufen weiterer Details zum Zertifikatsinhaber, wie z. B. CRL- oder OCSP-URLs.
  17. Inhaber-ID (Attribute): Eine eindeutige ID für den Zertifikatsinhaber.
  18. Issuer Alternative Name (Attribute): Alternative Namen oder Identifikatoren für die ausstellende Zertifizierungsstelle.
  19. Nutzerdefinierte Attribute (Attribute): Je nach Bedarf können benutzerdefinierte Attribute hinzugefügt werden, um spezifische Informationen im Zertifikat zu speichern.

Herstellerspezifische Erweiterungen

Es ist möglich, eigene proprietäre Extensions oder Attribute in X.509-Zertifikate einzufügen. X.509 bietet eine flexible Struktur für Extensions, die es Organisationen ermöglicht, zusätzliche Daten zu definieren, die für ihre spezifischen Bedürfnisse und Anwendungsfälle relevant sind. Diese benutzerdefinierten Extensions müssen jedoch in einer Weise spezifiziert werden, die den Regeln des X.509-Standards entspricht, und sie müssen von den Anwendungen, die die Zertifikate nutzen, entsprechend interpretiert werden können.

OIDs von PKITNEXT, PEN 61090

IETFPEN (name)branch (produkt)branch (parameter)
1.3.6.1.61090. (pkitnext labs)5. (pkit2)10. (INSTANCE)
11. (VENDOR)
1.3.6.1.61090. (pkitnext labs)6. (pkit3)10. (INSTANCE)
11. (VENDOR)
1.3.6.1.61090. (pkitnext labs)7. (pkit4)10. (INSTANCE)
11. (VENDOR)
1.3.6.1.61090. (pkitnext labs)8. (pkitnext)10. (INSTANCE)
11. (VENDOR)

Beispiel: Request mit Openssl und herstellerspezifischen Erweiterungen

  1. Öffnen Sie die OpenSSL-Konfigurationsdatei (z.B. openssl.cnf) in einem Texteditor.
  2. Fügen Sie einen neuen Abschnitt für die benutzerdefinierten Extensions hinzu oder passen Sie einen bestehenden an. In diesem Abschnitt können Sie die neuen Extensions definieren:

Die Felder INSTANCE und VENDOR verstehen sich als Platzhalter für die gewünschten Zeichenketten, zum Beispiel: INSTANCE = “Webserver” und VENDOR = “Apache”

[ pkitnext_extensions ]
1.3.6.1.61090.5.10 = ASN1:UTF8String:INSTANCE
1.3.6.1.61090.5.11 = ASN1:UTF8String:VENDOR

Wenn Sie das Zertifikat erstellen, verweisen Sie auf diesen Abschnitt in der Konfigurationsdatei. Zum Beispiel können Sie den req Befehl wie folgt verwenden:

openssl req -new -key mykey.pem -out myreq.pem -config openssl.cnf -extensions pkitnext_extensions

Dieser Befehl erstellt eine neue Zertifikatsanforderung (myreq.pem) mit den neuen Extensions, die im Abschnitt [ new_extensions ] der openssl.cnf definiert sind.