# Cliente Linux Não Gerido

{% hint style="info" %}
Aplicável à versão 2.9 e superior do SCEPman
{% 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. Definiçõ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 do navegador e um certificado para a conta com a qual fez login será criado.

### Renovação de Certificado

Você também pode usar o módulo PowerShell para renovar certificados já existentes. Isso também dispensa a necessidade de usar um service principal 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 ele 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 destes:

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

**-d** para certificado de dispositivo com autodetecção de 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 tentará ser lido 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 de aplicativo no seu ambiente.

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

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

<figure><img src="/files/786cb559882ae9aba7a0dc8902423f3ceee252f3" alt=""><figcaption></figcaption></figure>

#### 4. Diretório do Certificado

O diretório onde o certificado será criado ou para o qual será tentada a renovação.

*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. Limiar de Renovação

A quantidade de dias para os quais o certificado precisará estar prestes a expirar para que o script inicie o processo de renovação.

*Exemplo: 30*

### Considerações

* Este script não criptografa as chaves geradas (isso requer a entrada de uma senha, portanto a criptografia foi omitida para permitir a renovação automática).
* Se você estiver renovando certificados protegidos por senha do Certificate Master, precisará informar essa senha 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 perto de expirar. 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 não necessariamente 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;


---

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

```
GET https://docs.scepman.com/pt/gestao-de-certificados/api-certificates/self-service-enrollment/unmanaged-linux-client.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
