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 utilizador para depois permitir apenas que ele inscreva certificados de utilizador para a sua conta ou os seus dispositivos, pode querer ser capaz de inscrever certificados de forma não interativa para sujeitos arbitrários.

Para conseguir isso, podemos autenticar um service principal e permitir que ele aproveite a Enrollment REST API do SCEPman.

Pré-requisitos

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

Inscrição por APIchevron-right

Módulo PowerShell SCEPmanClient

Solicitações Iniciais

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 dispensa a necessidade de usar um service principal 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 ele 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 deteção automática, quer seja uma inscrição inicial ou uma renovação

-y para inscrição inicial de um certificado de servidor

-c para submeter um pedido de assinatura de certificado existente

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

Cliente Linux não geridochevron-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 do ID da Aplicação da SCEPman-api registro de aplicativo no seu ambiente.

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

4. Nome do Ficheiro 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 para o qual será tentada a renovação.

Exemplo: ~/certs/

8. Limite 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

Parâmetros adicionais para Certificados de Servidor:

9. ID de Cliente do Service Principal

O ID da Aplicação (Cliente) do registo da aplicação com a qual queremos autenticar.

10. Segredo de Cliente do Service Principal

O segredo de cliente criado do registo da aplicação com a qual queremos autenticar.

11. ID do Tenant do Service Principal

O ID do tenant do nosso registo de aplicação.

12. Assunto do Certificado

O assunto com o qual pretende inscrever o certificado.

Formato: /CN=SubjectName,O=Organization

13. Extensão do Certificado

Isto será adicionado como nome alternativo do assunto

Exemplo: DNS:webserver.contoso.com

Exemplo de utilização para assinatura de CSR (-c command)

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.

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.

Last updated

Was this helpful?