# Cliente Linux Não Gerenciado

{% hint style="info" %}
Aplicável à versão 2.9 do SCEPman e posteriores
{% endhint %}

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

Este método pode ser usado para inscrever certificados para usuários e dispositivos que não são gerenciados ou que são gerenciados por um MDM diferente do Intune.

## Pré-requisitos

### 1. Inscrição de Autoatendimento

### 2. Configurações do App Service

Este cenário inscreverá certificados do tipo ***IntuneUser.***

## Módulo PowerShell SCEPmanClient

### Solicitações Iniciais

Você pode usar o módulo PowerShell SCEPmanClient para solicitar certificados no seu dispositivo Linux:

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

O usuário então precisará fazer login interativamente em uma sessão de navegador e um certificado para a conta em que está logado será criado.

### Renovação de Certificado

Você também pode usar o módulo PowerShell para renovar certificados já existentes. Isso também evita a necessidade de usar um principal de serviço para autenticação:

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

New-SCEPmanCertificate @Parameters
```

## Script de Inscrição e Renovação

Se o módulo PowerShell não for uma opção para você, o [enrollrenewcertificate.sh](https://github.com/scepman/csr-request/blob/main/enroll-certificate/enrollrenewcertificate.sh) script pode ser usado para receber inicialmente um certificado, bem como para verificá-lo e tentar uma renovação caso esteja prestes a expirar.

### **Pré-requisitos do Cliente**

Exemplo:

{% 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. Comando

Define o comportamento do script

Pode ser qualquer um de:

**-u** para certificado de usuário com autodetecção se é uma inscrição inicial ou renovação

**-d** para certificado de dispositivo com autodetecção se é uma inscrição inicial ou renovação

**-r** para renovação

**-w** para inscrição inicial de um usuário

**-x** para inscrição inicial de um dispositivo

{% hint style="warning" %}
Se você estiver inscrevendo ou renovando um certificado de dispositivo, o DeviceId será tentado ler de *\~/.config/intune/registration.toml* por padrão e o usuário autenticado precisará corresponder ao proprietário do objeto no [DeviceDirectory](https://docs.scepman.com/advanced-configuration/application-settings/intune-validation#appconfig-intunevalidation-devicedirectory)
{% endhint %}

#### 2. URL do App Service

A URL do serviço de aplicativo SCEPman.

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

#### 3. API\_SCOPE

Este é o escopo da API que você pode criar no ***SCEPman-api*** registro do aplicativo em seu ambiente.

O usuário verá a caixa de diálogo de consentimento desejada e poderá então usar a funcionalidade de autoatendimento.

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

<figure><img src="https://3802289327-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. Diretório de Certificados

O diretório onde o certificado será criado ou tentado ser renovado.

*Exemplo: \~/certs/*

#### 5. Nome do Arquivo do Certificado

O nome do arquivo (sem extensão) do certificado que será criado ou lido para renovação.

*Exemplo: "myCertificate"*

#### 6. Nome do Arquivo da Chave Privada

O nome do arquivo da chave privada que será criado ou lido para renovação.

*Exemplo: "myKey"*

#### 7. Limite de Renovação

A quantidade de dias para o certificado expirar para que o script comece o processo de renovação.

*Exemplo: 30*

### Considerações

* Este script não criptografa as chaves geradas (isso requer entrada de frase de segurança, então a criptografia foi omitida para permitir renovação automática).
* Se você estiver renovando certificados protegidos por frase de segurança do Certificate Master, precisará inserir essa frase de segurança para renová-los.

## Configurar renovação automática

Quando o script bash acima for executado e detectar que um certificado já foi inscrito, ele renovará o certificado (se estiver próximo da expiração) usando mTLS. Se o script for executado regularmente, isso garantirá que o certificado seja renovado quando estiver próximo da expiração. Você pode configurar um cronjob para conseguir isso. O comando abaixo é um exemplo de como isso pode ser feito. Ele configurará um cronjob para executar o comando diariamente (se o sistema estiver ligado) e um cronjob para executar o comando na reinicialização.

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

Como os comandos executados pelo Cron nem sempre serão executados a partir do diretório em que o script/certificados estão, é importante fornecer os caminhos absolutos para o script/certificados.&#x20;
