# Zwischen-CA

{% hint style="warning" %}
nur SCEPman Enterprise Edition
{% endhint %}

Wenn Sie eine andere Root-CA als primäre Instanz verwenden möchten, können Sie ein Zwischen-CA-Zertifikat erstellen, um SCEPman als untergeordnete Zertifizierungsstelle zu betreiben. Sie können das richtige Zertifikat direkt in Azure Key Vault erstellen und die CSR zum Signieren mit Ihrer Root-CA herunterladen. Die signierte Anfrage kann hochgeladen und in Azure Key Vault zusammengeführt werden. Dieser Artikel führt Sie im Detail durch die notwendigen Schritte.

## Key Vault-Berechtigungen

Sie müssen Ihrem Benutzerkonto Zugriff auf den Azure Key Vault gewähren, um die CSR zu erstellen und das Zwischen-CA-Zertifikat zusammenzuführen. Die Art der Zuweisung der Berechtigungen hängt von der Zugriffskonfiguration Ihres Key Vault ab:

{% tabs %}
{% tab title="Azure RBAC" %}

1. Navigieren Sie in der Azure Portal zu Ihrem Azure Key Vault
2. Klicken Sie auf **Access control (IAM)** im linken Navigationsbereich.
3. Klicken Sie auf **Rollen-Zuweisungen** und fügen Sie eine neue Rollen-Zuweisung hinzu

<figure><img src="https://2075553437-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2FZUqsPTRdUk5IhmZZlBVD%2Fimage.png?alt=media&#x26;token=325c2296-4f6b-476d-b003-29cf3674556f" alt=""><figcaption><p>Fügen Sie Ihrem Key Vault eine neue Rollen-Zuweisung hinzu</p></figcaption></figure>

4. Wählen Sie das **Key Vault Certificate Officer** Rolle und klicken Sie auf **Weiter**

<figure><img src="https://2075553437-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2FptcaAY0strUu3qIgkTdc%2Fimage.png?alt=media&#x26;token=6bf4adc2-da77-4ece-ba68-09c61fc6905e" alt=""><figcaption></figcaption></figure>

5. Suchen Sie nun nach Ihrem AAD-Administratorkonto und fügen Sie es im **Mitglieder** Abschnitt hinzu und fahren Sie mit der Rollenzuweisung fort

Nach dem Hinzufügen der Rollenzuweisung ist Ihr Azure AD-Konto berechtigt, eine CSR zu erstellen und das Zertifikat hochzuladen.
{% endtab %}

{% tab title="Vault-Zugriffsrichtlinien" %}

1. Navigieren Sie in der Azure Portal zu Ihrem Azure Key Vault
2. Klicken Sie auf **Zugriffsrichtlinien** im linken Navigationsbereich.
3. Klicken Sie auf **Erstellen** und wählen Sie die **Zertifikatsverwaltung** Vorlage, dann Weiter

<figure><img src="https://2075553437-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2FD2mWeiZ7YnQuRN0rdypW%2F2023-06-14%2016_20_43-IntermediateCert.png?alt=media&#x26;token=da6b385e-8902-4b53-8a9f-25f3573d6532" alt=""><figcaption></figcaption></figure>

<figure><img src="https://2075553437-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2F37QHfqcQRHNboM4yQkTb%2F2023-06-14%2016_23_37-IntermediateCert.png?alt=media&#x26;token=3cc22a95-8f13-4487-b270-083efa2779bd" alt=""><figcaption></figcaption></figure>

4. Suchen Sie nun nach Ihrem AAD-Administratorkonto und fügen Sie es im **Prinzipal** Abschnitt, dann Weiter, Weiter und Erstellen

<figure><img src="https://2075553437-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2FIj3S2D7wkNquLnBJSUQe%2F2023-06-14%2017_06_33-.png?alt=media&#x26;token=195c03cb-a120-434b-8aa1-c44d4b2d26f6" alt=""><figcaption></figcaption></figure>

Nach dem Hinzufügen der Berechtigungen ist Ihr Azure AD-Konto berechtigt, eine CSR zu erstellen und das Zertifikat hochzuladen.
{% endtab %}
{% endtabs %}

## Key Vault-Netzwerk für das Admin-System öffnen

Wenn Sie einen [Private Endpoint](https://docs.scepman.com/de/azure-konfiguration/private-endpoints) für Key Vault müssen Sie eine Ausnahme hinzufügen, die dem Client den Zugriff auf den Key Vault auf Netzwerkebene erlaubt. Wenn Sie keinen Private Endpoint verwenden, können Sie diesen Teil überspringen.

* Gehen Sie in der Azure Portal zu Azure Key Vault.
* Navigieren Sie im Bereich Einstellungen zum Blade Networking.
* Wechseln Sie zu „Öffentlichen Zugriff von bestimmten virtuellen Netzwerken und IP-Adressen zulassen“, wenn derzeit „Öffentlichen Zugriff deaktivieren“ ausgewählt ist.
* Fügen Sie die IP-Adresse des Clients hinzu, auf dem Sie [das SCEPman PowerShell-Modul später ausführen möchten](#creating-intermediate-ca-certificate-with-the-scepman-powershell-module). Wenn Sie die Azure Cloud Shell verwenden und [sie mit einem VNET verbunden ist](https://learn.microsoft.com/en-us/azure/cloud-shell/vnet/overview), können Sie dieses VNET hinzufügen. Andernfalls ist der einfachste Weg, die öffentliche IP-Adresse der Cloud Shell vorübergehend zuzulassen, da eine starke Authentifizierung Ihren Key Vault schützt. Sie können beispielsweise einen Befehl wie `(Invoke-WebRequest -UseBasicParsing -uri "http://ifconfig.me/ip").Content` verwenden, um die öffentliche IP-Adresse der Sitzung zu ermitteln.

## Azure App Service-Einstellungen aktualisieren

Der nächste Schritt besteht darin, die Konfiguration des Azure App Service so zu aktualisieren, dass sie dem Subject-Namen der Zwischen-CA entspricht, die Sie im nächsten Schritt erstellen werden.

1. Navigieren Sie in der Azure Portal zu Ihrem Azure App Service
2. Klicken Sie auf **Umgebungsvariablen** im linken Navigationsbereich
3. In **Anwendungseinstellungen,** müssen Sie die folgenden Einstellungen bearbeiten:
   1. `AppConfig:KeyVaultConfig:RootCertificateConfig:CertificateName`\
      Ändern Sie dies in einen bevorzugten allgemeinen Namen (CN) für Ihre Zwischen-CA.
   2. `AppConfig:KeyVaultConfig:RootCertificateConfig:Subject`\
      Ändern Sie nur den CN-Wert des Subject-Namens, damit er mit dem oben verwendeten allgemeinen Namen übereinstimmt.
4. Klicken Sie auf **Übernehmen und bestätigen.**
5. Starten Sie die Azure **App Service** neu, um die Änderungen anzuwenden, und navigieren Sie dann zu Ihrer SCEPman-URL.

{% hint style="warning" %}
Bitte beachten Sie, dass die Variable CertificateName direkt dem Zertifikatsobjekt entspricht, das im Azure Key Vault erstellt wird. Sie können daher nur Zertifikatsnamen verwenden, die alphanumerische Zeichen und Bindestriche enthalten&#x20;
{% endhint %}

<figure><img src="https://2075553437-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2FvO2YgKtltBesm2Eme7ix%2Fimage.png?alt=media&#x26;token=9ec3f21e-b6eb-47c5-8e10-3e2cbe519669" alt=""><figcaption></figcaption></figure>

## Erstellen eines Zwischen-CA-Zertifikats mit dem SCEPman PowerShell-Modul

{% hint style="warning" %}
Damit dieses Modul korrekt funktioniert, benötigen Sie einen Arbeitsplatzrechner mit [Azure CLI](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli) (auch bekannt als `az`) installiert. Die Azure CLI ist vorinstalliert in der [Azure Cloud Shell](https://docs.microsoft.com/en-us/azure/cloud-shell/overview), was die empfohlene Umgebung für die Ausführung dieses Moduls ist.
{% endhint %}

Sie können die SCEPman PowerShell-Modulversion 1.9 und höher verwenden, um eine CSR für ein Zwischen-CA-Zertifikat zu erstellen. Sie können die neueste Version des Moduls aus der PowerShell Gallery mit dem folgenden Befehl installieren:

```powershell
Install-Module -Name SCEPman -Scope CurrentUser -Force
```

Dann können Sie dem Modul den Namen Ihrer Organisation mitteilen, der im Zertifikat erscheinen soll:

```powershell
Reset-IntermediateCaPolicy -Organization "My Organization"
```

Konfigurieren Sie das Subject Ihrer Zwischen-CA so, dass es mit dem oben verwendeten in `AppConfig:KeyVaultConfig:RootCertificateConfig:Subject` übereinstimmt (optional können Sie einige zusätzliche Einstellungen ändern, um den CSR-Inhalt zu steuern):

{% code lineNumbers="true" %}

```
$policy = Get-IntermediateCaPolicy
$policy.policy.x509_props.subject = "CN=YOUR_CN_FROM_ABOVE,OU=YOUR_TENANT_ID,O=YOUR_ORGANIZATION"
# ändern Sie einige zusätzliche Einstellungen von $policy
Set-IntermediateCaPolicy -Policy $policy
```

{% endcode %}

Schließlich können Sie die CSR mit dem folgenden Befehl erstellen (oder einem ähnlichen gemäß Ihrer Umgebung):

```powershell
New-IntermediateCA -SCEPmanAppServiceName "app-scepman-example" -SearchAllSubscriptions 6>&1
```

Der Befehl gibt die CSR aus, die Sie bei Ihrer Root-CA zur Signierung einreichen.

## Das Zwischen-CA-Zertifikat ausstellen

Reichen Sie nun Ihre CSR bei Ihrer Root-CA ein und rufen Sie Ihr ausgestelltes Zwischen-CA-Zertifikat ab. Speichern Sie das Zertifikat auf der Festplatte (.cer), damit Sie es im nächsten Schritt hochladen und mit dem privaten Schlüssel in Azure Key Vault zusammenführen können.

### Sonderanweisungen für eine ADCS Enterprise Root CA

Wenn Sie Active Directory Certificate Services als AD-integrierte Root-CA verwenden und daher eine Zertifikatvorlage auswählen müssen, muss sie die folgenden Key Usages enthalten: "CRLSign", "DigitalSignature", "KeyEncipherment" und "KeyCertSign". KeyEncipherment fehlt in der Standardvorlage "Subordinate Certificate Authority" und kann außerdem in neuen Vorlagen nicht ausgewählt werden. Bitte sehen Sie unten nach einer Lösung, falls dieses Problem auftritt. **Dies gilt nicht für eigenständige Root-CAs**, auch bekannt als Offline Root CAs, da diese die Key Usages korrekt aus der CSR übernehmen.

#### Überblick

Sie können die SubCA-Vorlage duplizieren oder wie erforderlich verwenden. Dann stellen Sie einfach ein Zertifikat mit der Vorlage basierend auf der CSR aus. Dieses Zertifikat wird *die falsche Key Usage* (0x86) haben. Anschließend signieren Sie das Zertifikat mit einer angepassten Key-Usage-Erweiterung erneut mit `certutil -sign`.

#### Schritt für Schritt

1. Fordern Sie ein SubCA-Zertifikat an und stellen Sie es aus.
2. Exportieren Sie das neue SubCA-Zertifikat in eine Datei (z. B. c:\temp\SubCA.cer) auf der Root-CA. Wählen Sie **Base-64 kodiertes X.509** Format.
3. Erstellen Sie auf der Root-CA eine Datei "extfile.txt" mit dem unten gezeigten Inhalt (z. B. c:\temp\extfile.txt).
4. Starten Sie die Befehlszeile und führen Sie aus: `certutil -sign "c:\temp\SubCA.cer" "c:\temp\SubCAwithKeyEncipher.cer" @c:\temp\extfile.txt`
5. Das Zertifikat SubCAwithKeyEncipher.cer enthält nun die angeforderte Key Usage (0xA6). Der Fingerabdruck (Signatur) hat sich geändert, aber die Seriennummer nicht.
6. Die Liste der ausgestellten Zertifikate in ADCS enthält das alte Zertifikat. Da sich die Seriennummer nicht geändert hat, können Sie das neue Zertifikat mit dem alten Handle verwalten, z. B. widerruft das Widerrufen des alten Zertifikats auch das neue Zertifikat. Wenn Ihnen das nicht gefällt, können Sie den alten Zertifikatseintrag löschen mit `certutil -deleterow` und dann das neue Zertifikat importieren mit `certutil -importcert`.

#### extfile.txt

```
[Extensions]
2.5.29.15=AwIBpg==
Critical=2.5.29.15
```

## Das Zwischen-CA-Zertifikat hochladen

1. Klicken Sie in Azure Key Vault auf Ihr Zertifikat und drücken Sie **Certificate Operation**
2. Jetzt können Sie die Optionen sehen **Download CSR** und **Merge Signed Request**

![](https://2075553437-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2Fgit-blob-9b845d790796a34cb0e9296434373a502ddfee92%2Fscreenshot-2020-10-19-at-16.01.18.png?alt=media)

1. Klicken Sie auf **Merge Signed Request** und Ihr Zwischen-CA-Zertifikat hochladen. Nachdem Sie die signierte Anfrage hochgeladen haben, können Sie das gültige Zertifikat in Ihrem Azure Key Vault im Bereich **Completed**

{% hint style="warning" %}
Das Zwischen-CA-Zertifikat muss im PEM-Format (Base64-kodiert) vorliegen. Wenn Sie das binäre DER-Format verwenden, sehen Sie in den Details eine Fehlermeldung mit dem Inhalt „Property x5c has invalid value X5C must have at least one valid item“.
{% endhint %}

## CA-Eignung prüfen

Auf der SCEPman-Statusseite können Sie die neue Konfiguration sehen und das neue Zwischen-CA-Zertifikat herunterladen, um es über Endpoint Manager bereitzustellen.

Bitte prüfen Sie, ob das CA-Zertifikat alle Anforderungen erfüllt, indem Sie Ihre SCEPman-Homepage besuchen. Prüfen Sie, was die Homepage neben „CA Suitability“ anzeigt. Wenn dort beispielsweise steht *CA Certificate is missing Key Usage "Key Encipherment"*, sollten Sie zu Schritt [Das Zwischen-CA-Zertifikat ausstellen](#issue-the-intermediate-ca-certificate) zurückgehen und die Zertifikatsausstellung korrigieren.

## Zwischen-CAs und Intune SCEP-Profile

Auf der Android-Plattform müssen die SCEP-Konfigurationsprofile in Intune auf die Root-CA verweisen, nicht auf die Zwischen-CA. Andernfalls schlägt das Konfigurationsprofil fehl. Für Windows ist es umgekehrt: Die SCEP-Konfigurationsprofile in Intune müssen auf die Zwischen-CA verweisen, nicht auf die Root-CA. Für iOS und macOS liegen uns keine eindeutigen Informationen vor, ob die eine oder andere Vorgehensweise besser ist.
