Generación de CRL
Los certificados revocados antes de su fecha de vencimiento se almacenan en una Lista de Revocación de Certificados (CRL), gestionada por la CA. La CRL suele publicarse periódicamente, por ejemplo, cada 24 horas. Las entidades de la red validan los certificados emitidos con la CRL o mediante una comprobación de OCSP cada vez que se utiliza una certificación.
El administrador de CA también puede decidir publicar manualmente una nueva CRL inmediatamente después de que se haya revocado un certificado.
Las siguientes secciones cubren cómo administrar CRL en EJBCA.
Una nueva CA siempre debe emitir una CRL (vacía) y esto se hace cuando se crea la CA.
Los certificados caducados normalmente se eliminan de las CRL según la RFC 5280. Este comportamiento se puede configurar mediante la opción "Mantener certificados caducados en la CRL" (consulte Campos de CA ).
Generar una CRL
Generar CRL manualmente
Para crear o descargar una CRL, seleccione la opción de menú " Estructura de la CA y CRL" . La página "Estructura de la CA y CRL" muestra secciones para cada CA y subCA creada.
Para generar y publicar una nueva CRL inmediatamente, haga clic en Crear CRL .
Para descargar una CRL, haga clic en el enlace Descargar al final de la CRL creada.
Para generar una CRL utilizando la interfaz de línea de comandos EJBCA, ejecute el siguiente comando:
bin /ejbca .sh ca createcrl <CA name>Para obtener más información sobre cómo configurar períodos de CRL, puntos de distribución de CRL y emisores de CRL, consulte Campos de CA y Administración de perfiles de certificado .
Generar CRL automáticamente
Utilice una de las siguientes formas para hacer que EJBCA cree automáticamente CRL actualizadas:
Uso del trabajador de servicio de actualización de CRL
En la interfaz gráfica de administración, vaya a Editar servicios y agregue un nuevo servicio. Edite el servicio y seleccione el trabajador del actualizador de CRL y el intervalo que desea usar. Asegúrese de configurar el servicio como Activo .
Este servicio verifica, en el intervalo seleccionado, si es necesario regenerar la CRL actual (por estar vencida o dentro del umbral de vencimiento) y genera una nueva CRL si es necesario.
Para obtener más información sobre el servicio CRL Updater, consulte Servicios .
Generar CRL en caso de revocación
Si esta opción en la configuración de CA CRL está marcada, la siguiente CRL o delta CRL se genera inmediatamente, consulte Campos de CA.
Usando Unix Cron
Las CRL también se pueden generar mediante una tarea cron o una llamada equivalente a bin/ejbca.sh ca createcrl . El comando createcrl comprueba todas las CA activas y si es necesario actualizar sus CRL.
Para forzar la generación de CRL para una CA, utilice bin/ejbca.sh ca createcrl caname.
Un ejemplo de entrada crontab:
PATH=$PATH: /usr/java/jdk1 .6.0_24 /bincd @daily /home/ejbca ; /home/ejbca/bin/ejbca .sh ca createcrl;donde /usr/java/jdk1.6.0_24/bin es la ruta donde se puede encontrar Java y /home/ejbca es donde está instalado ejbca.
A continuación se muestra un crontab de ejemplo que se instalará con crontab -e :
SHELL= /bin/shPATH= /usr/local/sbin : /usr/local/bin : /sbin : /bin : /usr/sbin : /usr/binCLASSPATH=$CLASSPATH: /root/ejbcaAPPSRV_HOME= /usr/local/jboss#mh dom mon dow command00 0 * * * cd /root/ejbca ;. /bin/ejbca .sh ca createcrl CRL delta
EJBCA puede emitir CRLs delta. En la configuración de la CA, configure el Periodo de CRLs delta con el tiempo de validez de las CRLs delta si se emiten. La interfaz de línea de comandos y el Servicio de Actualización de CRLs generarán CRLs delta si el Periodo de CRLs delta es mayor que 0.
Si un certificado está en espera (es decir, revocado con el código de motivo «certifiedHold ») en una CRL base y luego se libera, aparecerá en las CRL delta subsiguientes con el código de motivo «removeFromCRL» , de acuerdo con la RFC 5280, sección 5.2.4. La fecha de revocación de dicha entrada de CRL será la fecha en que se liberó el certificado.
Tenga en cuenta que, tras cambiar el motivo de revocación de los certificados previamente revocados, este cambio no se incluirá en la siguiente CRL Delta si la revocación se retrotrae a la CRL completa anterior. Para obtener más información, consulte "Permitir cambiar el motivo de revocación en los campos de la CA" y "Permitir revocación retroactiva en los campos del perfil de certificado" .
Recuperación de CRL
EJBCA almacena todas las CRL generadas, a menos que las elimine manualmente de la base de datos.
Puede recuperar CRL (ya sea la CRL más reciente o una CRL con un número de CRL específico) utilizando la interfaz de línea de comandos o la Web de RA:
Para recuperar CRL mediante la interfaz de línea de comandos:
bin/ejbca.sh ca getcrl --helpPara recuperar CRL mediante RA Web, seleccione RA Web>Certificados CA y CRL y utilice el parámetro adicional crlnumber=<número de crl >.
Eficiencia de generación de CRL
Para generar una CRL, indexe las siguientes consultas de base de datos para que sea eficiente:
SELECT MAX(a.crlNumber) FROM CRLData a WHERE a.issuerDN=:issuerDN AND a.deltaCRLIndicator=- 1 (or > 0 )SELECT a FROM CRLData a WHERE a.issuerDN=:issuerDN AND a.crlNumber=:crlNumberSELECT a FROM CerttificateData a WHERE a.issuerDN=:issuerDN AND a.status=:statusSELECT a FROM NoConflictCertificateData a WHERE a.issuerDN=:issuerDN AND a.status=:statusPara garantizar la eficiencia de estas consultas a lo largo del tiempo, con una base de datos en crecimiento, es necesario agregar índices a la base de datos, como se describe en el archivo doc/sql-scripts/create-index-ejbca.sql . En particular:
crldata_idx3
crldata_idx4
certificado_idx6
CRL grandes
No es posible establecer un tamaño máximo de CRL, ya que esto depende del sistema utilizado y de que haya usuarios que generen CRL con millones de entradas. En general, generar CRL grandes requiere:
Buenos índices de bases de datos para buscar todos los certificados revocados.
Suficiente RAM asignada a JBoss para construir la CRL.
Dependiendo de qué tan grande sea exactamente, también puede ser necesario ajustar algún tiempo de espera si toma mucho tiempo generar CRL.
Es posible que sea necesario ajustar la base de datos para ejecutar consultas muy grandes y para almacenar la CRL resultante, que puede tener cientos de MB, en la base de datos (un ejemplo es la configuración max_allowed_packet en MariaDB/MySQL).
Para generar CRL realmente grandes, puede utilizar un nodo dedicado a la generación de CRL para no afectar a los nodos de emisión mientras se genera una CRL grande.
Para probar CRLs grandes, puede usar el modo Revocar de la prueba de estrés del servicio web de clientToolBox para revocar los certificados emitidos, lo que le permite generar rápidamente cientos de miles de certificados revocados. Los certificados revocados pueden emitirse desde una CA de prueba dedicada, lo que facilita la limpieza de la base de datos (aunque realizar copias de seguridad y restaurarlas antes y después de la prueba es más efectivo). La prueba le permite generar primero cien mil entradas, crear una CRL, luego generar doscientas, quinientas, un millón y, al mismo tiempo, controlar cómo aumenta el tiempo de generación de la CRL y el tamaño de la misma.
Para ver las instrucciones de uso del comando, ejecute:
./ejbcaClientToolBox.sh EjbcaWsRaCli stressSi se ejecuta con el modo REVOKE , los certificados se emitirán y luego se revocarán, lo que producirá entradas de certificado revocado que estarán en la próxima CRL generada.