Administración de configuraciones de EJBCA
EJBCA mantiene sus configuraciones estáticas en el directorio conf . Este directorio contiene varios archivos de configuración (guardados como *.properties.sample ), que deben renombrarse a *.properties para activarse. Para instalaciones de producción, se recomienda mantener los archivos de configuración en un directorio aparte para conservar la configuración al actualizar EJBCA.
Configuración requerida
Antes de continuar, es necesario modificar algunos archivos de configuración para garantizar que la instalación básica de EJBCA funcione correctamente. Se pueden realizar otros cambios después de la instalación, volviendo a implementar EJBCA.
instalar.propiedades
El archivo de configuración install.properties especifica las propiedades de la CA de administración.
Las propiedades especificadas en install.properties solo se utilizan durante el paso de instalación de EJBCA y no se compilarán en el archivo EAR de EJBCA.
A continuación se enumeran las propiedades que deben configurarse antes de la instalación. Tenga en cuenta que el archivo de configuración puede incluir propiedades distintas a las que se indican a continuación.
Propiedad | Valor predeterminado | Descripción |
ca.nombre | Gestión CA | El nombre de la CA de administración creada durante la instalación. Este valor y los siguientes se pueden ignorar si no se crea ninguna CA de administración para esta instancia. |
ca.dn | CN=GestiónCA,O=EJBCA Muestra,C=SE | El DN del sujeto de la CA de gestión. |
ca.tipo de token | suave | El almacén de claves para las claves de la CA de administración da como resultado un almacén de claves PKCS#12 almacenado en la base de datos, mientras que se debe utilizar el valor org.cesecore.keys.token.PKCS11CryptoToken si el almacén de claves está almacenado en un HSM. |
ca.contraseña de token | nulo | Establece la contraseña del token para el almacén de claves de la CA de administración. Debe ser nula si no se utiliza contraseña, como en el caso de almacenes de claves programables o la protección del módulo nCipher. |
ca.tokenproperties | /inicio/ejbca/ejbca/conf/catoken.propiedades | Enlace a un archivo que define el token HSM que utiliza la CA de administración. Puede ignorarse si se utiliza un almacén de claves programable. |
ca.keyspec | 2048 | Especificación de claves para las claves de la CA de administración. Las claves RSA se definen por su longitud, mientras que las claves ECDSA por su nombre de curva o el valor implícitamente CA. Para más información, consulte Claves y firmas ECDSA . |
ca.tipo de clave | RSA | Tipo de clave para las claves de la CA de administración. Los valores disponibles son RSA , ECDSA o DSA. |
algoritmo de firma ca. | SHA256 con RSA | Algoritmo de firma para la CA de administración. Los algoritmos disponibles son: SHA1 con RSA, SHA1 con ECDSA, SHA256 con RSA y SHA256 con ECDSA . |
ca.validez | 3650 | Validez para la CA de Gestión. |
política de California | nulo | El ID de política de la CA de administración. Este ID determina la política de PKI que utiliza la CA. Use 2.5.29.32.0 para "cualquier política" (rfc5280) o null para ninguna política. |
ca.certificateprofile | RAÍZ | Perfil de certificado utilizado por la CA de administración. Requiere que el perfil se importe antes de la instalación. |
cesecore.propiedades
A continuación se enumeran las propiedades que deben configurarse antes de la instalación. Tenga en cuenta que el archivo de configuración puede incluir propiedades distintas a las que se indican a continuación.
Propiedad | Valor predeterminado | Descripción |
permitir.configuración.dinámica.externa | FALSO | Permite a EJBCA leer cesecore.properties desde un directorio externo. Para más información, consulte Manejo de configuraciones en un directorio independiente . |
algoritmo ca.rn | SHA1PRNG | El algoritmo utilizado por el RNG de EJBCA, SHA1PRNG, no debe confundirse con el algoritmo de firma obsoleto SHA1 y es compatible con FIPS. |
ca.serialnumberoctetsize | 20 | El tamaño predeterminado de los números de serie de los certificados, definido en octetos. El tamaño de los octetos será configurable por cada CA, pero este valor se establecerá para la CA de administración. Se incluye el bit de signo de un número de serie, y como el tamaño del campo es de longitud constante (independientemente de la longitud del número de serie), la entropía será ligeramente superior a 20*8 -2. Los valores aceptables (según la definición de RFC5280) están entre 4 y 20. |
lista blanca de clases personalizadas | Una lista separada por comas de clases personalizadas que necesitan pasar el filtro de deserialización de EJBCA, por ejemplo, extensiones personalizadas. | |
auditoríadeeventosdeseguridad.implementación.X | 0=org.cesecore.audit.impl. | Se utiliza para definir dispositivos de registro de auditoría. La X permite el uso de varios dispositivos. Todas las distribuciones de EJBCA utilizan Log4jDevice (que envía los registros al registro del servidor) e IntegrityProtectedDevice , que envía los registros de auditoría a la base de datos. Sin embargo, la implementación está diseñada para permitir dispositivos de registro de auditoría personalizados. Para ignorar explícitamente uno de estos dispositivos, cualquiera de los valores puede establecerse en nulo. El registro de auditoría se realizará durante la instalación de EJBCA para registrar los valores definidos para la CA de administración. |
ejbca.propiedades
A continuación se enumeran las propiedades que deben configurarse antes de la instalación. Tenga en cuenta que el archivo de configuración puede incluir propiedades distintas a las que se indican a continuación.
Propiedad | Valor predeterminado | Descripción |
servidor de aplicaciones.inicio | $APPSRV_INICIO | El directorio de inicio del servidor de aplicaciones. De forma predeterminada, se usará una variable de entorno establecida en $APPSRV_HOME . |
tipo de servidor de aplicaciones | <detección automática> | El tipo de servidor de aplicaciones utilizado, que normalmente será detectado automáticamente por los scripts de instalación. Si es necesario configurarlo explícitamente, los valores posibles son JBoss y GlassFish. |
ejbca.modo de producción | verdadero | Si EJBCA debe implementarse en modo de producción, lo que significa omitir algunas clases que se utilizan solo para pruebas y pueden ser un riesgo de seguridad si se implementan en un entorno de producción. |
permitir.configuración.dinámica.externa | FALSO | Permite a EJBCA leer ejbca.properties desde un directorio externo. Para más información, consulte Manejo de configuraciones en un directorio independiente . |
propiedades web
A continuación se enumeran las propiedades que deben configurarse antes de la instalación. Tenga en cuenta que el archivo de configuración puede incluir propiedades distintas a las que se indican a continuación.
Propiedad | Valor predeterminado | Descripción |
web.nosslconfigure | FALSO | Establézcalo como verdadero si desea que el comando de implementación del almacén de claves no configure los ajustes SSL del servidor de aplicaciones. Puede usarse para reforzar instalaciones expuestas, como aplicaciones virtuales que no pueden usar TLS. |
java.contraseña de confianza | cámbialo | La contraseña del almacén de claves de confianza de Java ( truststore.jks). Para evitar posibles problemas con Ant, evite caracteres (como $ ) que deban escaparse. |
superadmin.cn | Superadministrador | El nombre común (CN) del usuario superadministrador inicial. |
superadmin.dn | CN=${superadmin.cn},O=Muestra EJBCA,C=SE | <p El DN completo del sujeto del usuario superadministrador inicial. Tenga en cuenta que debe comenzar con el CN descrito anteriormente. |
superadmin.validity | 2 años | Permite especificar la validez del certificado de superadministrador durante la instalación. Si no se configura (se comenta), se utiliza el valor predeterminado de 2 años. |
contraseña de superadmin | ejbca | La contraseña para el almacén de claves del superadministrador inicial ( superadmin.p12 ). |
superadmin.batch | verdadero | Establezca en falso si no desea que el almacén de claves de superadministrador se genere durante la instalación, para poder generarlo manualmente. |
httpsserver.contraseña | contraseña del servidor | La contraseña para el almacén de claves del servidor de aplicaciones ( keystore.jks) . |
httpsserver.nombrehost | host local | El nombre de host de esta instancia. |
servidor https.dn | CN=${httpsserver.hostname},O=EJBCA Muestra,C=SE | El DN del sujeto del certificado TLS utilizado por la interfaz de usuario de EJBCA. |
servidor https.an | dnsName=${httpsserver.nombredehost} | El nombre alternativo del sujeto (SAN) del certificado TLS utilizado por la interfaz de usuario de EJBCA. Se pueden agregar hasta dos campos dnsName. |
httpserver.pubhttp | 8080 | El puerto http público para configurar el servidor de aplicaciones. |
httpserver.pubhttps | 8442 | El puerto https público para configurar el servidor de aplicaciones. |
httpserver.privhttps | 8443 | El puerto https privado para configurar el servidor de aplicaciones. |
httpserver.external.privhttps | Lo mismo que httpserver.privhttps | El puerto privado para exponer externamente, es decir, si se configura un proxy Apache delante de JBoss, se puede utilizar en su lugar 443. |
httpserver.external.fqdn | El nombre de dominio completo (FQDN) del front-end, por ejemplo, un proxy Apache. Para crear una URL absoluta, el nombre del servidor se obtiene de la solicitud del cliente web. Déjelo en blanco si se ejecuta sin proxy Apache o con proxy Apache mediante AJP (no con ProxyPass). ${httpsserver.hostname} debe configurarse cuando se utiliza un proxy Apache en el mismo servidor que EJBCA. Por último, configure cualquier FQDN cuando se utilice un proxy Apache con la directiva ProxyPass (en cualquier servidor). | |
httpsserver.bindaddress.pubhttp | 0.0.0.0 | Configurar para permitir únicamente conexiones desde la IP definida. |
web.reqcertindb | verdadero | Se establece como falso para todos los certificados de autenticación emitidos por una CA conocida, pero no en la base de datos. Se usa normalmente si se utiliza una CA externa para emitir certificados administrativos, para gestionar subCA o para configurar EJBCA como RA. |
cryptotoken.p11.lib. N. nombre | Los nombres y las ubicaciones de todos los archivos de biblioteca PKCS#11 utilizados. | |
cryptotoken.p11.attr.N.nombre | Los archivos de atributos PKCS#11 que se utilizarán, en caso de que los incluidos con EJBCA no sean suficientes. |
base de datos.propiedades
El archivo de configuración database.properties especifica las propiedades necesarias para configurar la conexión de la base de datos con el servidor de aplicaciones.
A continuación se enumeran las propiedades que deben configurarse antes de la instalación. Tenga en cuenta que el archivo de configuración puede incluir propiedades distintas a las que se indican a continuación.
Propiedad | Valor predeterminado | Descripción |
origen de datos.nombre-jndi | EjbcaDS | El nombre de la fuente de datos de la base de datos EJBCA. |
nombre.de.base.de.datos | h2 | El nombre de la base de datos utilizada. Los valores disponibles son MySQL, Postgres, MSSQL, Oracle, Sybase, Onformix, Derby, DB2, Ingres y H2 . Para MariaDB, se puede usar MySQL . |
base de datos.url | jdbc:h2:~/ejbcadb;RETRASO DE CIERRE DE BASE DE DATOS=-1 | La URL de la base de datos. |
controlador de base de datos | h2 | El nombre del controlador de la base de datos. |
base de datos.nombre de usuario | sa | El nombre de usuario establecido para la base de datos EJBCA. |
base de datos.useSeparateCertificateTable | FALSO | Establézcalo como verdadero para almacenar los cuerpos de certificado en la tabla Base64CertData en lugar de junto con el resto de la información en la tabla CertificateData. Puede aumentar el rendimiento en implementaciones de 100 millones de certificados o más. |
protección de base de datos.propiedades
EMPRESA Esta es una característica de EJBCA Enterprise.
El archivo de configuración databaseprotection.properties especifica la configuración utilizada para firmar las filas de varias tablas con el fin de proporcionar evidencia de manipulación, más comúnmente la tabla AuditRecordData.
A continuación se enumeran las propiedades que deben configurarse antes de la instalación. Tenga en cuenta que el archivo de configuración puede incluir propiedades distintas a las que se indican a continuación.
Propiedad | Valor predeterminado | Descripción |
protección de base de datos.enablesign | FALSO | Establece la firma de todas las tablas globalmente. Para habilitar la firma de una tabla específica, añada el nombre de la tabla del objeto de entidad (consulte las definiciones de tabla para obtener una asignación) a la propiedad, por ejemplo: databaseprotection.enablesign.AuditRecordData=true. Al establecer el valor globalmente como verdadero y una tabla individual como falso , dicha tabla puede excluirse. |
protección de base de datos.habilitar verificación | FALSO | Aplica la verificación de filas al leer. Similar a databaseprotection.enablesign, este valor puede establecerse globalmente o para tablas individuales. |
Para obtener instrucciones paso a paso sobre cómo configurar la protección de la base de datos con HMAC, consulte Cómo configurar la protección de la base de datos mediante HMAC .
Próximo paso: creación de la base de datos
Para obtener más información sobre cómo configurar su base de datos y crear índices de base de datos, consulte Creación de la base de datos .