> For the complete documentation index, see [llms.txt](https://docs.scepman.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.scepman.com/fr/gestion-des-certificats/api-certificates/self-service-enrollment/unmanaged-linux-client.md).

# Client Linux non géré

{% hint style="info" %}
Applicable à la version 2.9 de SCEPman et versions ultérieures
{% endhint %}

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

Cette méthode peut être utilisée pour inscrire des certificats pour des utilisateurs et des appareils non gérés ou gérés par un MDM autre qu'Intune.

## Prérequis

### 1. Inscription en libre-service

Pour inscrire des certificats, les utilisateurs doivent être authentifiés afin de vérifier leur éligibilité. Suivez ce guide pour des instructions étape par étape sur la façon de configurer cela

{% content-ref url="/pages/9d82681498507ac944ca4d6297d5ecfb2730b6de" %}
[Enrôlement en libre-service](/fr/gestion-des-certificats/api-certificates/self-service-enrollment.md)
{% endcontent-ref %}

### 2. Paramètres de l’App Service

#### Configuration

*Requis pour le renouvellement du certificat*

Configurez votre App Service SCEPman pour accepter les certificats clients mTLS. Dans le volet Configuration de la section Paramètres, vérifiez que le mode de certificat client dans Certificats clients entrants est défini sur ***Utilisateur interactif facultatif***.

<figure><img src="https://129332256-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2F9UeFFxwefnV8Cb7Zz14u%2Fimage.png?alt=media&amp;token=210ea9b7-ecd5-4b2b-9641-22447246e718" alt=""><figcaption></figcaption></figure>

Ne définissez pas le mode de certificat client sur Require ou Allow, car cela perturberait le fonctionnement normal de SCEPman sur les points de terminaison SCEP !

#### Variables d’environnement

Pour utiliser ce scénario, vous devez définir les variables d’environnement suivantes sur l’App Service SCEPman.

#### [AppConfig:DbCSRValidation:Enabled](https://docs.scepman.com/advanced-configuration/application-settings/dbcsr-validation#appconfig-dbcsrvalidation-enabled)

*Requis pour l’inscription et le renouvellement du certificat*

Définissez cette variable sur ***true*** pour activer la validation des demandes de signature de certificat (CSR).

#### [AppConfig:DbCSRValidation:AllowRenewals](https://docs.scepman.com/advanced-configuration/application-settings/dbcsr-validation#appconfig-dbcsrvalidation-allowrenewals)

*Requis pour le renouvellement du certificat*

Définissez cette variable sur ***true*** pour activer le renouvellement des certificats.

#### [AppConfig:DbCSRValidation:ReenrollmentAllowedCertificateTypes](https://docs.scepman.com/advanced-configuration/application-settings/dbcsr-validation#appconfig-dbcsrvalidation-reenrollmentallowedcertificatetypes)

*Requis pour le renouvellement du certificat*

Définissez cette variable sur une liste de types de certificats séparés par des virgules pour lesquels vous souhaitez autoriser le renouvellement. Consultez la documentation liée sur la variable pour obtenir la liste des types de certificats possibles.

Exemple : ***Static,IntuneUser,IntuneDevice***

Ce scénario inscrira des certificats du type ***IntuneUser.***

## Module PowerShell SCEPmanClient

### Demandes initiales

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

```powershell
New-SCEPmanCertificate -Url 'scepman.contoso.com' -SubjectFromUserContext -SaveToFolder '~/certs/'
```

L'utilisateur devra alors se connecter de manière interactive dans une session de navigateur et un certificat pour son compte connecté sera créé.

### Renouvellement du certificat

Vous pouvez également utiliser le module PowerShell pour renouveler des certificats déjà existants. Cela évitera également d'avoir à utiliser un Service Principal pour l'authentification :

```powershell
$Parameters = @{
    'CertificateFromFile' = '~/certs/john.doe@contoso.com.pem'
    'KeyFromFile'         = '~/certs/john.doe@contoso.com.key'
    'SaveToFolder'        = '~/certs/'
}

New-SCEPmanCertificate @Parameters
```

## Script d'inscription et de renouvellement

Si le module PowerShell n'est pas une option pour vous, le [enrollrenewcertificate.sh](https://github.com/scepman/csr-request/blob/main/enroll-certificate/enrollrenewcertificate.sh) script peut être utilisé pour obtenir initialement un certificat ainsi que pour le vérifier et tenter un renouvellement s'il est sur le point d'expirer.

### **Prérequis du client**

Les prérequis suivants doivent être présents sur le client/hôte exécutant afin de pouvoir utiliser l'API REST d'inscription.

#### [**Azure CLI**](https://learn.microsoft.com/en-us/cli/azure/install-azure-cli) **(version 2.61 et supérieure)**

Azure CLI est utilisé pour authentifier l'utilisateur procédant à l'inscription, 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'inscription SCEPman et recevoir le certificat.

#### OpenSSL

OpenSSL est utilisé pour générer une clé privée et créer une CSR pour inscrire ou renouveler un certificat.

Exemple :

{% code overflow="wrap" %}

```bash
./enrollrenewcertificate.sh -u https://scepman.contoso.net/ api://b7d17d51-8b6d-45eb-b42b-3dae638cd5bc/Cert.Enroll ~/certs/ "myCertificate" "myKey" 30
```

{% endcode %}

#### 1. Commande

Définit le comportement du script

Peut être n'importe laquelle des suivantes :

**-u** pour un certificat utilisateur avec détection automatique s'il s'agit d'une inscription initiale ou d'un renouvellement

**-d** pour un certificat d'appareil avec détection automatique s'il s'agit d'une inscription initiale ou d'un renouvellement

**-r** pour le renouvellement

**-w** pour l'inscription initiale d'un utilisateur

**-x** pour l'inscription initiale d'un appareil

{% hint style="warning" %}
Si vous inscrivez ou renouvelez un certificat d'appareil, le DeviceId sera lu depuis *\~/.config/intune/registration.toml* par défaut et l'utilisateur authentifié devra correspondre au propriétaire de l'objet dans le [DeviceDirectory](https://docs.scepman.com/advanced-configuration/application-settings/intune-validation#appconfig-intunevalidation-devicedirectory)
{% endhint %}

#### 2. URL du service App

L'URL du service d'application SCEPman.

*Exemple : "<https://scepman.contoso.net/>"*

#### 3. API\_SCOPE

Il s'agit du scope d'API que vous pouvez créer dans l' ***SCEPman-api*** enregistrement d'application dans votre environnement.

L'utilisateur verra votre boîte de dialogue de consentement souhaitée et pourra ensuite utiliser la fonctionnalité en libre-service.

*Exemple : "api://*&#x62;7d17d51-8b6d-45eb-b42b-3dae638cd5bc/Cert.Enrol&#x6C;*"*

<figure><img src="https://129332256-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2FKWdXwi8JnKGy27tU384e%2Fimage.png?alt=media&amp;token=5173dc4b-8981-40e9-8875-e932078c6667" alt=""><figcaption></figcaption></figure>

#### 4. Répertoire des certificats

Le répertoire dans lequel le certificat sera créé ou dont le renouvellement sera tenté.

*Exemple : \~/certs/*

#### 5. Nom du fichier du certificat

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

*Exemple : "myCertificate"*

#### 6. Nom du fichier de la clé privée

Le nom de fichier de la clé privée qui sera créée ou lue pour le renouvellement.

*Exemple : "myKey"*

#### 7. Seuil de renouvellement

Le nombre de jours avant l'expiration auquel le certificat devra se trouver pour que le script commence le processus de renouvellement.

*Exemple : 30*

### Considérations

* Ce script ne chiffre pas les clés générées (cela nécessite la saisie d'une phrase secrète, donc le chiffrement a été omis afin de permettre le renouvellement automatique.)
* Si vous renouvelez des certificats protégés par phrase secrète provenant de Certificate Master, vous devrez saisir cette phrase secrète afin de les renouveler.

## Mettre en place 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 l'expiration) à l'aide de mTLS. Si le script est exécuté régulièrement, cela garantira que le certificat est renouvelé lorsqu'il approche de son expiration. Vous pouvez configurer une tâche cron pour y parvenir. La commande ci-dessous est un exemple de la manière dont cela peut être fait. Elle configurera une tâche cron pour exécuter la commande quotidiennement (si le système est sous tension) et une tâche cron pour l'exécuter au redémarrage.

<pre data-overflow="wrap"><code><strong>(crontab -l ; echo @daily /path/to/enrollrenewcertificate.sh -u https://scepman.contoso.net/ api://b7d17d51-8b6d-45eb-b42b-3dae638cd5bc/Cert.Enroll /home/user/certs/ "myCertificate" "myKeyName" 30 ; echo @reboot /path/to/enrollrenewcertificate.sh -u https://scepman.contoso.net/ api://b7d17d51-8b6d-45eb-b42b-3dae638cd5bc/Cert.Enroll /home/user/certs/ "myCertificate" "myKeyName" 30 ) | crontab -
</strong></code></pre>

Comme les commandes exécutées par Cron ne seront 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.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.scepman.com/fr/gestion-des-certificats/api-certificates/self-service-enrollment/unmanaged-linux-client.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
