Servidor Linux
Solo SCEPman Enterprise Edition
Aunque los otros casos de uso de SCEPman brindan la capacidad de autenticar interactivamente a un usuario para luego permitirle solo inscribir certificados de usuario para su cuenta o sus dispositivos, quizás quiera poder inscribir certificados de forma no interactiva para sujetos arbitrarios.
Para lograr esto, podemos autenticar un Service Principal y permitirle aprovechar la API REST de inscripción de SCEPman.
Requisitos previos
Consulte el artículo de inscripción de la API sobre cómo crear un Service Principal que pueda usarse para autenticación:
Módulo de PowerShell SCEPmanClient
Solicitudes iniciales
Puede usar el módulo de PowerShell SCEPmanClient para solicitar certificados en su 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 @ParametersRenovación de certificados
También puede usar el módulo de PowerShell para renovar certificados ya existentes. Esto también evitará la necesidad de usar un Service Principal para la autenticación:
Script de inscripción y renovación
Si el módulo de PowerShell no es una opción para usted, el enrollrenewcertificate.sh script puede usarse para obtener inicialmente un certificado, así como para verificarlo e intentar una renovación en caso de que esté a punto de expirar.
Requisitos previos del cliente
Los siguientes requisitos previos deben estar presentes en el cliente/host de ejecución para poder usar la API REST de inscripción.
Azure CLI (versión 2.61 y superior)
La CLI de Azure se utiliza para autenticar al usuario que se inscribe para comprobar su elegibilidad y recuperar el token de acceso.
cURL
Se utiliza para enviar el CSR creado al punto de conexión de la API de inscripción de SCEPman y recibir el certificado.
OpenSSL
OpenSSL se utiliza para generar una clave privada y crear un CSR para inscribir o renovar un certificado.
Ejemplo:
1. Comando
Define el comportamiento del script
Para este caso de uso podemos usar las siguientes opciones:
-s para certificado de servidor con detección automática de si se trata de una inscripción inicial o una renovación
-y para la inscripción inicial de un certificado de servidor
-c para enviar una solicitud de firma de certificado existente
Para casos de uso de autenticación de cliente, vea:
2. URL de la App Service
La URL de la App Service de SCEPman.
Ejemplo: "https://scepman.contoso.net/"
3. Alcance de la API
Este es el URI del ID de aplicación de la SCEPman-api registro de la aplicación en su entorno.
Ejemplo: "api://a7a1d6c8-51b9-48ec-9ca0-a363dc2c8436"

4. Nombre del archivo del certificado
El nombre de archivo (sin extensión) del certificado que se creará o se leerá para la renovación.
Ejemplo: "myCertificate"
5. Directorio del certificado
El directorio en el que se creará el certificado o se intentará renovarlo.
Ejemplo: ~/certs/
8. Umbral de renovación
La cantidad de días que deben faltar para que expire el certificado para que el script comience el proceso de renovación.
Ejemplo: 30
Parámetros adicionales para certificados de servidor:
9. Id de cliente del Service Principal
El Id de la aplicación (cliente) del registro de la aplicación que queremos autenticar.
10. Secreto de cliente del Service Principal
El secreto de cliente creado del registro de la aplicación que queremos autenticar.
11. Id del Tenant del Service Principal
El id del Tenant de nuestro registro de la aplicación.
12. Asunto del certificado
El asunto con el que desea inscribir el certificado.
Formato: /CN=SubjectName,O=Organization
13. Extensión del certificado
Esto se agregará como nombre alternativo del sujeto
Ejemplo: DNS:webserver.contoso.com
Ejemplo de uso para la firma de CSR (comando -c)
Consideraciones
Este script no cifra las claves generadas (esto requiere introducir una frase de contraseña, por lo que se ha omitido el cifrado para permitir la renovación automática).
Si va a renovar certificados protegidos con frase de contraseña desde Certificate Master, deberá introducir esta frase de contraseña para poder renovarlos.
Configurar la renovación automática
Cuando se ejecute el script bash anterior y detecte que un certificado ya se ha inscrito, renovará el certificado (si está cerca de expirar) usando mTLS. Si el script se ejecuta regularmente, esto garantizará que el certificado se renueve cuando esté cerca de expirar. Puede configurar un cronjob para lograrlo. El siguiente comando es un ejemplo de cómo podría hacerse. Configurará un cronjob para ejecutar el comando diariamente (si el sistema está encendido) y un cronjob para ejecutar el comando al reiniciar.
Dado que los comandos ejecutados por Cron no necesariamente se ejecutarán desde el directorio en el que se encuentran el script/los certificados, es importante proporcionar las rutas absolutas al script/a los certificados.
Última actualización
¿Te fue útil?