X.509-Zertifikate

Für X.509-Zertifikate muss im Zertifikats-Template der Zertifikatstyp (Strukturtyp) x509CertificateTemplate gewählt werden (siehe Grundsätzlicher Aufbau).

X.509-Zertifikate sind digitale Zertifikate, welche in einem hierarchischen System von vertrauenswürdigen Zertifizierungsstellen verwendet werden können. X.509-Zertifikate sind immer an einen „Distinguished Name“ oder einen „Alternative Name“ wie eine E-Mail-Adresse gebunden. Das Profil von X.509-Zertifikaten (Version 3) ist in [RFC X.509] definiert. Neben Standardangaben wie z.B. Seriennummer, Aussteller, Zertifikatsinhalten, Gültigkeit und Schlüsselinformationen kann X.509-Zertifikat sogenannte Erweiterungen (Extensions) besitzen, welche in X.509-Extensions) beschrieben werden.

Attribute

Attribute des XML-Elements „x509CertificateTemplate“
Attributname Erläuterung

RA

Legt fest, ob es sich um ein RA-Zertifikat handelt.

Mögliche Werte sind true oder false, der Standard-Wert ist false.

Die Angabe ist optional. Das Attribut sollte nicht in Kombination mit dem OIDC-Attribut verwendet werden.

OIDC

Legt fest, ob es sich um ein OIDC User-Zertifikat handelt.

Mögliche Werte sind true oder false, der Standard-Wert ist false.

Die Angabe ist optional. Das Attribut sollte nicht in Kombination mit dem RA-Attribut verwendet werden.

charset

Legt die Kodierung der Strings für das Zertifikat fest.

Mögliche Werte sind in der Gültige Werte für charset beschrieben.

Die Angabe ist optional.

Gültige Werte für charset
Zeichensatz Erläuterung

Default

Es wird eine Standardkodierung verwendet, d.h. wenn möglich PrintableString, ansonsten UTF-8.

Ausgenommen sind hier die Felder, bei denen eine Kodierung fest vorgegeben ist, z.B. emailAddress (IA5String).

Diese Kodierung wird als Standard verwendet, wenn keine angegeben ist.

PrintableString

Es sind nur ASCII-Zeichen erlaubt.

Ausgenommen sind auch hier die Felder, bei denen eine Kodierung vorgegeben ist.

UTF-8

Alle Strings werden UTF-8 kodiert.

Ausgenommen sind auch hier die Felder, bei denen eine Kodierung vorgegeben ist.

Unterelemente

Unterelemente des XML-Elements „x509CertificateTemplate“
Element-Name Erläuterung

randomSerialNumber

Mit diesem XML-Element kann festgelegt werden, ob die Seriennummer des Zertifikats zufällig erzeugt wird.

Das XML-Element sollte keine Daten enthalten, es muss nur angegeben werden. Es muss nur das Attribut bitLength angegeben werden. Mit diesem definiert man die Größe der Entropie in Bits (bis zu 160).

Wenn das XML-Element nicht angegeben ist, wird die Seriennummer bei 1 beginnend heraufgezählt.

Dieses XML-Tag ist im Allgemeinen optional; bei Einsatz eines MariaDB Galera-Clusters als Cara-Datenbank werden hochzählende Seriennummern allerdings nicht unterstützt. Hier muss das XML-Tag <randomSerialNumber> verwendet werden, um eindeutige Seriennummern zu gewährleisten.

Beispiel:

<randomSerialNumber bitLength="50"/>

dnDefinition

Festlegung der Struktur des DN (Distinguished Name).

Eine Beschreibung ist in dnDefinitionType zu finden.

Dieses XML-Element muss angegeben werden.

extensions

Festlegung der möglichen Extensions, welche im Zertifikat verwendet werden können.

Aufbau:

<extensions>
    <extension>...</extension>
    <extension>...</extension>
</extensions>

Eine Beschreibung der unterstützten Extensions ist in X.509-Extensions zu finden.

Eine Definition von Extensions ist optional.

signature

Angabe des Signaturalgorithmus.

Eine Beschreibung ist in signatureType zu finden.

Dieses XML-Element muss angegeben werden.

validity

Angaben zur Gültigkeit des Zertifikats.

Wert: ValidityType (siehe ValidityType) .

Dieses XML-Element muss angegeben werden.

keyAttributes

Hiermit werden Parameter des Schlüssels festgelegt.

Eine Beschreibung ist in den KeyAttributesEncoding und KeyAttributesQuality zu finden.

Dieses XML-Element ist optional.

Beispiel

<?xml version="1.0" encoding="UTF-8"?>
<certificateTemplate xmlns="http://cara2.project.MTG/certificate/template" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<x509CertificateTemplate>
    <dnDefinition>
        <dnAttribute>
            <oid>2.5.4.6</oid><identName>id.country</identName>
        </dnAttribute>
        <dnAttribute>
            <oid>2.5.4.10</oid><identName>id.orgName</identName>
        </dnAttribute>
        <dnAttribute>
            <oid>2.5.4.11</oid><identName>id.orgUnitName1</identName>
        </dnAttribute>
        <dnAttribute mandatory="true">
            <oid>2.5.4.3</oid><identName>id.commonName</identName>
        </dnAttribute>
    </dnDefinition>
    <extensions>
    <extension>
        <subjectKeyIdentifier/>
    </extension>
    <extension critical="true">
        <keyUsage digitalSignature="true" keyEncipherment="true"/>
    </extension>
    <extension>
        <basicConstraints ca="false"/>
    </extension>
    </extensions>
    <signature>
        <algorithm>
        <default>1.2.840.113549.1.1.11</default>
        </algorithm>
    </signature>
    <validity>
        <max><year>3</year><month>0</month><day>0</day></max>
        <default><year>1</year><month>0</month><day>0</day></default>
    </validity>
</x509CertificateTemplate>
</certificateTemplate>