Linux-Server
Nur SCEPman Enterprise Edition
Während die anderen Anwendungsfälle von SCEPman die Möglichkeit bieten, einen Benutzer interaktiv zu authentifizieren, um ihm dann nur zu erlauben, Benutzerzertifikate für sein Konto oder seine Geräte zu beantragen, möchten Sie möglicherweise Zertifikate für beliebige Subjekte nicht-interaktiv ausstellen.
Um dies zu erreichen, können wir ein Service Principal authentifizieren und diesem erlauben, die Enrollment-REST-API von SCEPman zu nutzen.
Voraussetzungen
Bitte beziehen Sie sich auf den API Enrollment-Artikel, wie man einen Service Principal erstellt, der zur Authentifizierung verwendet werden kann:
API-RegistrierungPowershell-Modul SCEPmanClient
Erstanfragen
Sie können das SCEPmanClient PowerShell-Modul 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 @ParametersZertifikatsverlängerung
Sie können das PowerShell-Modul auch verwenden, um bereits vorhandene Zertifikate zu erneuern. Dadurch entfällt außerdem die Notwendigkeit, einen Dienstprinzipal für die Authentifizierung zu verwenden:
Registrierungs- und Verlängerungsskript
Wenn das PowerShell-Modul für Sie keine Option ist, kann das enrollrenewcertificate.sh Skript verwendet werden, um zunächst ein Zertifikat zu erhalten sowie um es zu überprüfen und im Falle des drohenden Ablaufs eine Verlängerung zu versuchen.
Client-Voraussetzungen
Die folgenden Voraussetzungen müssen auf dem ausführenden Client/Host vorhanden sein, um die Enrollment-REST-API verwenden zu können.
Azure CLI (Version 2.61 und höher)
Die Azure-CLI wird verwendet, um den anmeldenden Benutzer zu authentifizieren, seine Berechtigung zu prüfen und das Zugriffstoken abzurufen.
cURL
Wird verwendet, um die erstellte CSR an den SCEPman Enrollment-API-Endpunkt zu senden und das Zertifikat zu empfangen.
OpenSSL
OpenSSL wird verwendet, um einen privaten Schlüssel zu erzeugen und eine CSR zur Registrierung oder Erneuerung eines Zertifikats zu erstellen.
Nach Abschluss der Konfiguration stellen Sie sicher, die SCEP-Server-URL in Ihrem/ Ihren SCEP-Profil(en) in Intune zu aktualisieren. Die neue URL sollte die von Ihnen erstellte benutzerdefinierte Domain mit "/certsrv/mscep/mscep.dll" am Ende sein.
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 eine Erneuerung handelt
-y für die Erstregistrierung eines Serverzertifikats
-c zum Einreichen einer vorliegenden Certificate Signing Request (CSR)
Für Anwendungsfälle der Client-Authentifizierung siehe:
Unverwalteter Linux-Client2. App-Service-URL
Die URL des SCEPman-App-Services.
Beispiel: "https://scepman.contoso.net/"
3. API-Bereich
Dies ist die Application ID URI nächsten Schritt 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 Verlängerung gelesen wird.
Beispiel: "myCertificate"
5. Zertifikat-Verzeichnis
Das Verzeichnis, in dem das Zertifikat erstellt oder versucht wird zu verlängern.
Beispiel: ~/certs/
8. Erneuerungs-Schwelle
Die Anzahl der Tage bis zum Ablauf des Zertifikats, bei der das Skript den Verlängerungsprozess zu starten beginnt.
Beispiel: 30
Zusätzliche Parameter für Serverzertifikate:
9. Service Principal Client Id
Die Application (Client) Id der App-Registrierung, die wir authentifizieren möchten.
10. Service Principal Client Secret
Das erstellte Client-Secret der App-Registrierung, die wir authentifizieren möchten.
11. Service Principal Tenant Id
Die Tenant-Id unserer App-Registrierung.
12. Zertifikat-Subject
Das Subject, mit dem Sie das Zertifikat registrieren möchten.
Format: /CN=SubjectName,O=Organization
13. Zertifikat-Erweiterung
Dies wird als subject alternative name hinzugefügt
Beispiel: DNS:webserver.contoso.com
Anwendungsbeispiel für CSR-Signierung (-c Befehl)
Überlegungen
Dieses Skript verschlüsselt die erzeugten Schlüssel nicht (dies erfordert die Eingabe einer Passphrase, daher wurde die Verschlüsselung weggelassen, um automatische Verlängerungen zu ermöglichen).
Wenn Sie passphrase-geschützte Zertifikate vom Certificate Master verlängern, müssen Sie diese Passphrase eingeben, um sie zu erneuern.
Automatische Verlängerung einrichten
Wenn das oben genannte Bash-Skript ausgeführt wird und feststellt, dass ein Zertifikat bereits registriert wurde, erneuert es das Zertifikat (wenn es nahe am Ablauf ist) mit mTLS. Wenn das Skript regelmäßig ausgeführt wird, stellt dies sicher, dass das Zertifikat erneuert wird, wenn es dem Ablauf nahe kommt. Sie können einen Cronjob einrichten, um dies zu erreichen. Der unten stehende 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), und einen Cronjob, der den Befehl beim Neustart ausführt.
Da Cron-Aufrufe nicht zwingend aus dem Verzeichnis ausgeführt werden, in dem sich das Skript/die Zertifikate befinden, ist es wichtig, die absoluten Pfade zum Skript/den Zertifikaten anzugeben.
Zuletzt aktualisiert
War das hilfreich?