Servidor Linux

circle-info

Este recurso requer a versão 2.3.689 ou superior.

circle-exclamation

Enquanto os outros casos de uso do SCEPman fornecem a capacidade de autenticar interativamente um usuário para então permitir apenas que ele registre certificados de usuário para sua conta ou seus dispositivos, você pode querer ser capaz de registrar certificados não interativamente para sujeitos arbitrários.

Para realizar isso, podemos autenticar um principal de serviço e permitir que ele aproveite a API REST de Registro (Enrollment) do SCEPman.

Pré-requisitos

Consulte o artigo da API Enrollment sobre como criar um principal de serviço que pode ser usado para autenticação:

Registro via APIchevron-right

Módulo PowerShell SCEPmanClient

Solicitações Iniciais

Você pode usar o módulo PowerShell SCEPmanClient para solicitar certificados no seu servidor 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 @Parameters

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:

Script de Inscrição e Renovação

Se o módulo PowerShell não for uma opção para você, o enrollrenewcertificate.sharrow-up-right 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:

1. Comando

Define o comportamento do script

Para este caso de uso podemos usar as seguintes opções:

-s para certificado de servidor com auto-detecção se é um registro inicial ou renovação

-y para registro inicial de um certificado de servidor

-c para enviar uma requisição de assinatura de certificado (CSR) apresentada

Para casos de uso de Autenticação de Cliente, veja:

Cliente Linux Não Gerenciadochevron-right

2. URL do App Service

A URL do serviço de aplicativo SCEPman.

Exemplo: "https://scepman.contoso.net/"

3. Escopo da API

Isto é o URI de ID da Aplicação do SCEPman-api registro do aplicativo em seu ambiente.

Exemplo: "api://a7a1d6c8-51b9-48ec-9ca0-a363dc2c8436"

4. Nome do Arquivo do Certificado

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

Exemplo: "myCertificate"

5. Diretório do Certificado

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

Exemplo: ~/certs/

8. Limiar de Renovação

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

Exemplo: 30

Parâmetros adicionais para Certificados de Servidor:

9. Id do Cliente do Principal de Serviço

O Id da Aplicação (Cliente) do registro de aplicativo que queremos autenticar.

10. Segredo do Cliente do Principal de Serviço

O segredo de cliente criado do registro de aplicativo que queremos autenticar.

11. Id do Locatário do Principal de Serviço

O id do locatário do nosso registro de aplicativo.

12. Sujeito do Certificado

O sujeito com o qual você deseja registrar o certificado.

Formato: /CN=SubjectName,O=Organization

13. Extensão do Certificado

Isto será adicionado como nome alternativo de sujeito (subject alternative name)

Exemplo: DNS:webserver.contoso.com

Exemplo de uso para assinatura de CSR (-c comando)

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.

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.

Last updated

Was this helpful?