Interfaz de línea de comandos

A continuación, se proporciona información para la solución de problemas de la CLI. Para ver consejos generales de solución de problemas y buscar temas de solución de problemas, consulte Solución de problemas de EJBCA .

Problema: No se puede acceder a la CLI de EJBCA

Al acceder a la CLI de EJBCA ejecutando ${EJBCA_HOME}/bin/ejbca.sh, aparece el siguiente mensaje de error:

> /opt/ejbca/bin/ejbca.sh
Error: CLI could not contact EJBCA instance. Either your application server is not up and running, EJBCA has not been deployed successfully, or some firewall rule is blocking the CLI from the application server.

Causa

Bajo el capó, esto es causado por una IllegalStateException con el mensaje de error "No hay receptor EJB disponible para manejo".

Pasos para la solución de problemas

Se asume que utiliza JBoss como servidor de aplicaciones y RHEL como sistema operativo. Los pasos para la resolución de problemas serán muy similares si utiliza, por ejemplo, Wildfly en lugar de JBoss u otra distribución de Linux como Debian.

  1. Asegúrese de que JBoss esté en funcionamiento:

    ps aux | grep ${JBOSS_HOME}/bin/standalone.sh

    Si JBoss no se está ejecutando, inícielo.

  2. Asegúrese de que EJBCA se haya implementado correctamente:

    ls ${JBOSS_HOME}/standalone/deployments | grep ejbca.ear.deployed

    Si EJBCA no se ha implementado correctamente, verifique el archivo de registro de JBoss para averiguar por qué:

    cat ${JBOSS_HOME}/standalone/log/server.log | grep ERROR -C 10 | less

    Solucione el problema y vuelva a implementar EJBCA ejecutando lo siguiente:

    cd ${EJBCA_HOME}
    ant -q clean deployear
  3. Asegúrese de que el servidor de aplicaciones esté escuchando el puerto configurado en dist/ejbca-ejb-cli/jboss-ejb-client.properties (a menos que haya editado la configuración, debe ser el puerto 4447).

    sudo lsof -i: 4447

    Si se conecta remotamente, este puerto debe estar abierto en el firewall. Revise las reglas del firewall y abra este puerto para el tráfico TCP entrante si es necesario.

    sudo firewall-cmd --zone= public --list-ports | grep 4447 /tcp
  4. Asegúrese de que el usuario que ejecuta el servidor de aplicaciones tenga acceso de lectura y ejecución a los archivos de autenticación relevantes:

    1. Si se utiliza la autenticación local , el usuario necesita acceder a los archivos en ${JBOSS_HOME}/domain/tmp/auth

    2. Si se utiliza la autenticación remota , el usuario necesita acceder a los archivos en ${JBOSS_HOME}/standalone/tmp/auth

    La forma más fácil de lograr esto es ejecutar el servidor de aplicaciones como usuario jboss y asegurarse de que ${JBOSS_HOME} sea propiedad de este usuario:

    sudo chown -R jboss:jboss ${JBOSS_HOME}
    sudo chmod -R 'g=u' ${JBOSS_HOME}
    sudo find ${JBOSS_HOME} -type d -exec sudo chmod g+s {} \;