Serveur Linux

circle-info

Cette fonctionnalité nécessite la version 2.3.689 ou supérieure.

circle-exclamation

Alors que les autres cas d'utilisation de SCEPman permettent d'authentifier interactivement un utilisateur pour ensuite uniquement lui permettre d'enregistrer des certificats utilisateur pour son compte ou ses appareils, vous pourriez vouloir pouvoir enregistrer des certificats de manière non interactive pour des sujets arbitraires.

Pour y parvenir, nous pouvons authentifier un principal de service et lui permettre d'utiliser l'API REST d'enrôlement de SCEPman.

Prérequis

Veuillez vous référer à l'article API Enrollment pour savoir comment créer un principal de service pouvant être utilisé pour l'authentification :

Inscription via APIchevron-right

Module PowerShell SCEPmanClient

Requêtes initiales

Vous pouvez utiliser le module PowerShell SCEPmanClient pour demander des certificats sur votre serveur Linux :

$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

Renouvellement de certificat

Vous pouvez également utiliser le module PowerShell pour renouveler des certificats déjà existants. Cela évite aussi l’exigence d’utiliser un principal de service pour l’authentification :

Script d’inscription et de renouvellement

Si le module PowerShell n’est pas une option pour vous, le enrollrenewcertificate.sharrow-up-right script peut être utilisé pour recevoir initialement un certificat ainsi que pour le vérifier et tenter un renouvellement s’il est sur le point d’expirer.

Prérequis client

Exemple :

1. Commande

Définit le comportement du script

Pour ce cas d'utilisation, nous pouvons utiliser les options suivantes :

-s pour un certificat de serveur avec détection automatique afin de savoir s'il s'agit d'un enrôlement initial ou d'un renouvellement

-y pour l'enrôlement initial d'un certificat de serveur

-c pour soumettre une requête de signature de certificat fournie

Pour les cas d'utilisation d'authentification client, voir :

Client Linux non géréchevron-right

2. URL du service d’application

L’URL du service d’application SCEPman.

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

3. Étendue de l'API

Ceci est le URI d'application (Application ID URI) du SCEPman-api enregistrement d’application dans votre environnement.

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

4. Nom de fichier du certificat

Le nom de fichier (sans extension) du certificat qui sera créé ou lu pour le renouvellement.

Exemple : "myCertificate"

5. Répertoire du certificat

Le répertoire où le certificat sera créé ou essayé d’être renouvelé.

Exemple : ~/certs/

8. Seuil de renouvellement

Le nombre de jours avant l’expiration du certificat pour que le script commence le processus de renouvellement.

Exemple : 30

Paramètres supplémentaires pour les certificats de serveur :

9. Identifiant client du principal de service

L'ID de l'application (Client) de l'enregistrement d'application que nous voulons authentifier.

10. Secret client du principal de service

Le secret client créé de l'enregistrement d'application que nous voulons authentifier.

11. Identifiant de locataire du principal de service

L'ID de locataire de notre enregistrement d'application.

12. Sujet du certificat

Le sujet avec lequel vous souhaitez enregistrer le certificat.

Format : /CN=SubjectName,O=Organization

13. Extension du certificat

Ceci sera ajouté en tant que nom alternatif du sujet

Exemple : DNS:webserver.contoso.com

Exemple d'utilisation pour la signature CSR (commande -c)

Considérations

  • Ce script n’encrypte pas les clés générées (cela nécessite une saisie de phrase de passe, donc le chiffrement a été omis pour permettre le renouvellement automatique).

  • Si vous renouvelez des certificats protégés par une phrase de passe depuis Certificate Master, vous devrez saisir cette phrase de passe afin de les renouveler.

Configurer le renouvellement automatique

Lorsque le script bash ci‑dessus est exécuté et détecte qu’un certificat a déjà été inscrit, il renouvellera le certificat (s’il est proche de son expiration) en utilisant mTLS. Si le script est exécuté régulièrement, cela garantira que le certificat est renouvelé lorsqu’il se rapproche de son expiration. Vous pouvez configurer un cronjob pour y parvenir. La commande ci‑dessous est un exemple de la manière dont cela peut être fait. Elle mettra en place un cronjob pour exécuter la commande quotidiennement (si le système est sous tension) et un cronjob pour exécuter la commande au redémarrage.

Étant donné que les commandes exécutées par Cron ne sont pas nécessairement lancées depuis le répertoire où se trouvent le script/les certificats, il est important de fournir les chemins absolus vers le script/les certificats.

Mis à jour

Ce contenu vous a-t-il été utile ?