# Client Linux non géré

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

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

Cette méthode peut être utilisée pour inscrire des certificats pour des utilisateurs et des appareils qui ne sont pas gérés ou qui sont gérés par un MDM autre qu’Intune.

## Prérequis

### 1. Inscription en libre-service

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

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

## Module PowerShell SCEPmanClient

### Requêtes 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 ensuite se connecter de manière interactive dans une session de navigateur et un certificat pour son compte connecté sera créé.

### 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 :

```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 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 :

{% 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 l’un des suivants :

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

**-d** pour un certificat d’appareil avec détection automatique pour savoir 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, l’identifiant de l’appareil (DeviceId) sera tenté d’être 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 d’application

L’URL du service d’application SCEPman.

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

#### 3. API\_SCOPE

Ceci est la portée d’API que vous pouvez créer dans l’ ***SCEPman-api*** enregistrement d’application dans votre environnement.

L’utilisateur se verra présenter la 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&#x26;token=5173dc4b-8981-40e9-8875-e932078c6667" alt=""><figcaption></figcaption></figure>

#### 4. Répertoire des certificats

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

*Exemple : \~/certs/*

#### 5. Nom de fichier du certificat

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

*Exemple : "myCertificate"*

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

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

*Exemple : "myKey"*

#### 7. Seuil de renouvellement

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

*Exemple : 30*

### 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.

<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>

É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.&#x20;
