Linux-Server

circle-info

Diese Funktion erfordert Version 2.3.689 oder höher.

circle-exclamation

Während die anderen Anwendungsfälle von SCEPman die Möglichkeit bieten, einen Benutzer interaktiv zu authentifizieren, um dann nur die Ausstellung von Benutzerzertifikaten für sein Konto oder seine Geräte zu erlauben, möchten Sie möglicherweise Zertifikate für beliebige Subjekte nicht interaktiv ausstellen können.

Um dies zu erreichen, können wir einen Service Principal authentifizieren und ihm erlauben, die Enrollment REST API von SCEPman zu nutzen.

Voraussetzungen

Bitte lesen Sie den API-Enrollment-Artikel, wie man einen Service Principal erstellt, der zur Authentifizierung verwendet werden kann:

API Enrollmentchevron-right

PowerShell-Modul SCEPmanClient

Erstanforderungen

Sie können das PowerShell-Modul SCEPmanClient verwenden, um Zertifikate auf Ihrem Linux-Server anzufordern:

$Parameters = @{
    'Url'              = 'scepman.contoso.com'
    'ClientId'         = '569fbf51-aa63-4b5c-8b26-ebbcfcde2715'
    'TenantId'         = '8aa3123d-e76c-42e2-ba3c-190cabbec531'
    'ClientSecret'     = 'csa8Q~aVaWCLZTzswIBGvhxUiEvhptuqEyJugb70'
    'Subject'          = 'CN=LinuxServer'
    'IP'               = '10.22.11.8'
    'ExtendedKeyUsage' = 'ServerAuth'
    'SaveToFolder'     = '/etc/ssl/scepman'
    'IncludeRootCA'    = $true
}

New-SCEPmanCertificate @Parameters

Zertifikatserneuerung

Sie können das PowerShell-Modul auch verwenden, um bereits vorhandene Zertifikate zu erneuern. Dadurch entfällt auch die Notwendigkeit, für die Authentifizierung einen Service Principal zu verwenden:

Skript für Enrollment und Erneuerung

Wenn das PowerShell-Modul für Sie keine Option ist, kann das enrollrenewcertificate.sharrow-up-right Skript verwendet werden, um zunächst ein Zertifikat zu erhalten sowie es zu überprüfen und bei bevorstehendem Ablauf eine Erneuerung zu versuchen.

Client-Voraussetzungen

Beispiel:

1. Befehl

Definiert das Verhalten des Skripts

Für diesen Anwendungsfall können wir die folgenden Optionen verwenden:

-s für Serverzertifikat mit automatischer Erkennung, ob es sich um eine Erstregistrierung oder Erneuerung handelt

-y für die Erstregistrierung eines Serverzertifikats

-c zum Einreichen eines vorhandenen Certificate Signing Requests

Für Anwendungsfälle der Client-Authentifizierung siehe:

Nicht verwalteter Linux-Clientchevron-right

2. App-Service-URL

Die URL des SCEPman-App-Services.

Beispiel: "https://scepman.contoso.net/"

3. API-Bereich

Dies ist die Application ID URI des SCEPman-api App-Registrierung in Ihrer Umgebung erstellen können.

Beispiel: "api://a7a1d6c8-51b9-48ec-9ca0-a363dc2c8436"

4. Zertifikat-Dateiname

Der Dateiname (ohne Erweiterung) des Zertifikats, das erstellt oder zur Erneuerung gelesen wird.

Beispiel: "myCertificate"

5. Zertifikatverzeichnis

Das Verzeichnis, in dem das Zertifikat erstellt oder die Erneuerung versucht wird.

Beispiel: ~/certs/

8. Schwellenwert für Erneuerung

Die Anzahl der Tage, die das Zertifikat noch gültig sein muss, damit das Skript den Erneuerungsprozess startet.

Beispiel: 30

Zusätzliche Parameter für Serverzertifikate:

9. Client-ID des Service Principal

Die Application (Client) Id der App-Registrierung, mit der wir uns authentifizieren möchten.

10. Clientgeheimnis des Service Principal

Das erstellte Clientgeheimnis der App-Registrierung, mit der wir uns authentifizieren möchten.

11. Tenant-ID des Service Principal

Die Tenant-ID unserer App-Registrierung.

12. Zertifikats-Subject

Das Subject, mit dem Sie das Zertifikat ausstellen möchten.

Format: /CN=SubjectName,O=Organization

13. Zertifikatserweiterung

Dies wird als Subject Alternative Name hinzugefügt

Beispiel: DNS:webserver.contoso.com

Verwendungsbeispiel für CSR-Signierung (-c-Befehl)

Hinweise

  • Dieses Skript verschlüsselt die erzeugten Schlüssel nicht (dafür ist eine Passphrase-Eingabe erforderlich, daher wurde auf die Verschlüsselung verzichtet, um eine automatische Erneuerung zu ermöglichen.)

  • Wenn Sie mit einer Passphrase geschützte Zertifikate von Certificate Master erneuern, müssen Sie diese Passphrase eingeben, um sie zu erneuern.

Automatische Erneuerung einrichten

Wenn das obige Bash-Skript ausgeführt wird und erkennt, dass bereits ein Zertifikat enrollt wurde, erneuert es das Zertifikat (wenn es kurz vor dem Ablauf steht) mithilfe von mTLS. Wenn das Skript regelmäßig ausgeführt wird, wird sichergestellt, dass das Zertifikat erneuert wird, wenn es kurz vor dem Ablauf steht. Sie können dazu einen Cronjob einrichten. Der folgende Befehl ist ein Beispiel dafür, wie dies erfolgen könnte. Er richtet einen Cronjob ein, der den Befehl täglich ausführt (wenn das System eingeschaltet ist) sowie einen Cronjob, der den Befehl beim Neustart ausführt.

Da von Cron ausgeführte Befehle nicht unbedingt aus dem Verzeichnis ausgeführt werden, in dem sich das Skript/die Zertifikate befinden, ist es wichtig, die absoluten Pfade zu dem Skript/den Zertifikaten anzugeben.

Zuletzt aktualisiert

War das hilfreich?