Serveur Linux
Uniquement SCEPman Enterprise Edition
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 :
Enrôlement via APIModule 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 @ParametersRenouvellement 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.sh 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
Les prérequis suivants doivent être présents sur le client/hôte exécutant pour pouvoir utiliser l’API REST d’enrôlement.
Azure CLI (version 2.61 et supérieure)
L’interface Azure CLI est utilisée pour authentifier l’utilisateur qui s’enrôle afin de vérifier son éligibilité et récupérer le jeton d’accès.
cURL
Utilisé pour envoyer la CSR créée au point de terminaison de l’API d’enrôlement SCEPman et recevoir le certificat.
OpenSSL
OpenSSL est utilisé pour générer une clé privée et créer une CSR pour l’enrôlement ou le renouvellement d’un certificat.
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é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 ?