Herramienta ConfigDump
EMPRESA Esta es una característica de EJBCA Enterprise.
La herramienta EJBCA ConfigDump permite exportar e importar configuraciones en formato YAML (legible para humanos). Exportar el estado actual de la instalación es útil para realizar auditorías y comparar los cambios de configuración realizados en EJBCA. La función de importación permite importar una configuración completa o una configuración que contenga, por ejemplo, un conjunto de perfiles, CA o cualquier otro objeto previamente exportado a EJBCA.
Dado que el volcado de configuración en sí es legible para humanos, puede editar los campos en cada objeto (por ejemplo, cambiar el DN del sujeto de un perfil de entidad final) antes de importar.
Las siguientes secciones proporcionan una breve comparación entre la herramienta ConfigDump y nuestra herramienta de gestión de configuración Statedump anterior, seguida de información sobre cómo crear y ejecutar ConfigDump y los comandos a utilizar para exportar e importar.
Comparación entre ConfigDump y Statedump
ConfigDump sirve como reemplazo parcial de la herramienta de gestión de configuración Statedump.
Statedump permite exportar e importar configuraciones EJBCA completas en nuevas instancias utilizando el formato de exportación XML, que no está diseñado para ser legible por humanos y, por lo tanto, no es adecuado como herramienta de auditoría.
La nueva herramienta ConfigDump, en cambio, produce una salida YAML legible para humanos, que le permite modificar las exportaciones manualmente.
A continuación se proporciona una comparación de alto nivel entre ConfigDump y Statedump.
Funcionalidad | Volcado de configuración | Vertedero estatal |
Formato de salida | YAML | XML |
Se puede editar fácilmente | Sí | No |
Exportar | Sí | Sí |
Importar | Sí | Sí |
Capacidad de agregar comentarios a los archivos de salida | Sí | No |
Estructura de carpetas y salida
Cada objeto EJBCA se exporta a su propio archivo. Los objetos de diferentes tipos se guardarán en carpetas distintas.
A continuación se muestra un ejemplo de una estructura de directorio creada por ConfigDump:
> tree.├── certification-authorities│ ├── PrimeKey TestNet.yml├── validators│ ├── My CAA Validator.yml│ ├── My RSA Key Validator.ymlA continuación se muestra un ejemplo de salida de ConfigDump:
'Type': 'PARTITIONED_APPROVAL''Name': 'Partitioned approval profile test''Approval expiration period': '1d''Request expiration period': '2d''Max extension time': '3d''Allow self-approved request editing': !!bool 'true''Steps':- 'Partitions':- 'Title': 'Partition 1''Can approve':- 'Super Administrator'- 'RA Administrator 1''Can view':- 'Super Administrator'- 'CA Administrator'- 'RA Administrator 1'- 'RA Administrator 2'- 'Supervisor''Components':- 'Type': 'Text field''Label': 'Text test''Content': 'This is a multiline string.'- 'Type': 'Checkbox''Label': 'Checkbox test''Is checked?': !!bool 'true'- 'Type': 'Radio group''Label': 'Radio test''Selected choice': 'Blue''Possible choices':- 'Green'- 'Blue'- 'Red'- 'Title': 'Partition 2''Can approve':- 'Super Administrator'- 'RA Administrator 2''Can view':- 'Anybody''Administrator notification':'Sender': 'no-reply@admin.notification''Recipients':- 'recipient1@admin.com'- 'recipient2.admin.com''Subject': 'Admin notification subject''Body': 'Admin notification body''User notification':'Sender': 'no-reply@user.notification''Subject': 'User notification subject''Body': 'User notification body''Components':- 'Type': 'Number''Label': 'Integer test''Value': !!int '42'- 'Type': 'Big number''Label': 'Long test''Value': !!int '9223372036854775807'Como podemos ver, este archivo YAML corresponde a un perfil de aprobación particionado con un paso y dos particiones. La partición 1 contiene un campo de texto, una casilla de verificación y un grupo de opciones con tres botones de opción. La partición 2 contiene una notificación de usuario, una notificación de administrador y dos campos numéricos.
Tipos de objetos exportables
A continuación se enumeran los tipos de objetos disponibles que se pueden exportar mediante ConfigDump:
configuración acme
preferencias de administrador
roles de administrador
perfiles de aprobación
protocolos disponibles
perfiles de certificado
autoridades de certificación
configuración cmp
criptotokens
registros de ct
extensiones de certificado personalizadas
perfiles de entidad final
configuración estimada
uso extendido de claves
combinaciones de teclas internas
configuración de clave oauth
configuración de ocsp
conectores de pares
editores
configuración scep
servicios
proveedores de confianza de OAUTH
validadores
La importación y exportación requieren el permiso de la regla de acceso /system_functionality/edit_systemconfiguration. La importación de protocolos disponibles requiere permiso de superadministrador. Para obtener más información sobre los permisos, consulte Roles y reglas de acceso .
Edificio
Para compilar y ejecutar la herramienta ConfigDump desde la línea de comando, utilice el siguiente argumento de compilación:
$ ant configdumpEsto genera una biblioteca JAR independiente implementada en dist/configdump/configdump.jar. Para ejecutarla, use el siguiente comando:
.sh $ . /dist/configdump/configdump Exportar
A continuación se enumeran los subcomandos del comando de exportación .
Para ver el archivo manual completo del comando de exportación, ejecute:
$ . /dist/configdump/configdump .sh export --helpEl comando de exportación genera una exportación completa basada en YAML de una instalación EJBCA, diseñada para ser legible. Por lo tanto, las referencias de ID de los objetos se reemplazarán con sus nombres propios. Los certificados y la información de la entidad final no se incluirán en esta exportación.
Parámetros obligatorios
Cambiar | Descripción |
-l (puede omitirse si este valor se agrega primero) | El directorio de salida donde se escribirán los archivos YAML. Se creará automáticamente si no existe. Proporcione la ruta absoluta al directorio, por ejemplo, /home/user/configdumpresult. Se sobrescribirán los archivos de volcado existentes. |
Parámetros opcionales
Cambiar | Descripción |
--excluir | Nombres de los elementos/tipos que se excluirán en la exportación, separados por punto y coma. El tipo y el nombre se separan con dos puntos, y se permiten comodines "*". Ambos no distinguen entre mayúsculas y minúsculas. Por ejemplo , --exclude "*:Example CA; cryptotoken:Example*; systemconfiguration:* " Los tipos admitidos son: ACMECONFIG, CA, CRYPTOTOKEN, PUBLISHER, APPROVALPROFILE, CERTPROFILE, EEPROFILE, SERVICE, ROLE, KEYBINDING, ENDENTITY, SYSCONFIG, ADMINPREFS, CMPCONFIG, OCSPCONFIG, PEERCONNECTOR, PEERCONFIG, SCEPCONFIG, ESTCONFIG, VALIDATOR, CTLOG, EXTENDEDKEYUSAGE, CERTEXTENSION, AVAILABLEPROTOCOLS |
--ignorar-errores | Imprima una advertencia en lugar de abortar y lanzar una excepción en caso de errores. |
--ignorar-advertencias | No se imprimirán advertencias en la salida CLI. |
--incluir | Nombres de los elementos/tipos que se incluirán en la exportación. La sintaxis es idéntica a la de --exclude . Para los elementos de tipos no listados, se incluye todo. |
--include-cas externo- | Permite la exportación de CA externas (es decir, CA donde solo hay un certificado y nada más). |
--con-valores-predeterminados | Incluya también campos que tengan el valor predeterminado. |
Un ejemplo de uso del filtro de inclusión para exportar únicamente la configuración de CMP al volcado de directorio se vería así:
./configdump.sh export --exclude "*:*" --include "CMPCONFIG:*" -l dumpO exportar un alias EST específico:
./configdump.sh export --exclude "*:*" --include "ESTCONFIG:myAliasName*" -l dump Exportación de contraseñas y secretos
Varios elementos de configuración almacenan contraseñas o secretos, que suelen estar cifrados en la base de datos. Un ejemplo es el secreto de autenticación del modo CMP RA. Este tipo de secretos se reemplazan con el marcador de cadena durante la exportación.
Al construir archivos de volcado de configuración para importar, busque y reemplace los secretos establecidos con el marcador de posición con los valores que se usarán para la importación, o edítelos después usando la interfaz de usuario de EJBCA o la CLI.
A continuación, se muestra un ejemplo de salida para un alias SCEP con configuración de Intune que contiene un secreto de API de aplicación de Azure y una contraseña de proxy EJBCA de Intune .
Object Type: SCEP Configuration Version: 2 Name: Intune Operational Mode: RA Authenticate through Microsoft Intune: 'true' RA CA Name: IntuneCA RA Authentication Password: placeholder Azure Application ID: IntuneID Azure Application API Secret: placeholder Intune Tenant: My tennant Intune EJBCA Proxy Password: placeholder Importar
A continuación se enumeran los subcomandos del comando de importación .
Para ver el archivo manual completo del comando de importación, ejecute:
$ . /dist/configdump/configdump .sh import --helpEl comando de importación lee desde una exportación basada en YAML de una instalación EJBCA, o archivos YAML creados siguiendo la misma estructura que una exportación.
Parámetros obligatorios
Cambiar | Descripción |
-l | El directorio de entrada desde donde leer los archivos YAML de volcado. Debe apuntar al directorio raíz de los archivos YAML. No se pueden apuntar a subdirectorios específicos. |
Parámetros opcionales
Cambiar | Descripción |
--ignorar-errores | Imprima una advertencia en lugar de abortar y lanzar una excepción en caso de errores. |
--ignorar-advertencias | No se imprimirán advertencias en la salida CLI. |
--inicializar | Generar certificado inicial para las CA durante la importación. |
--no interactivo | Establezca el modo no interactivo. El modo debe ser uno de los siguientes: <continuar> o <abortar> |
--exagerar | No solicitar sobrescritura. El modo debe ser <update> o <skip>. Si un objeto del archivo YAML ya existe en la base de datos, este objeto debe omitirse en la importación o actualizarse. |
--resolver-referencia | No solicitar problemas de referencia. El modo debe ser <predeterminado> o <omitir>. Cuando un objeto a importar hace referencia a un objeto faltante, este debe obtener un valor predeterminado para el objeto faltante o ser omitido de la importación. |
Limitaciones conocidas
Los siguientes objetos están disponibles para la exportación de ConfigDump, aunque todavía no se pueden importar en la versión 7.5.
preferencias de administrador
configuración de msae
Interfaz REST de ConfigDump
La interfaz REST de EJBCA admite la importación y la exportación. Para obtener más información, consulte Interfaz REST de EJBCA .
Para permitir la automatización mediante la interfaz REST, los superadministradores pueden acceder a ella sin habilitarla previamente. Al habilitar ConfigDump u otros protocolos, el superadministrador puede realizar operaciones adicionales sin acceder a la CLI ni a la interfaz de usuario. Para actualizar la configuración del protocolo o la interfaz, los superadministradores deben importar el objeto de protocolo disponible con el parámetro "overwrite" establecido en "true".
Solución de problemas
Si EJBCA se ejecuta como un usuario diferente de ConfigDump (lo que puede suceder siempre que inicie sesión como foo pero EJBCA se ejecuta como, por ejemplo, wildfly ), puede encontrarse con el siguiente problema al exportar:
Exporting to directory: /home/foo/configdumpjava.nio.file.AccessDeniedException: /home/foo/configdump[....]La solución es crear la carpeta manualmente con el grupo de propiedad adecuado, según el siguiente ejemplo:
mkdir ~/configdumpsudo chown foo:wildfly ~/configdump