Qué puede evaluarse
RA1: Implanta arquitecturas Web analizando y aplicando criterios de funcionalidad.
Arquitectura Cliente-ServidorArquitectura MonolíticaArquitectura N-CapasMicroserviciosServidor WebHTTPHTTPSMétodos HTTPCódigos de Estado HTTPSSL/TLS
RA2: Gestiona servidores Web, evaluando y aplicando criterios de configuración para el acceso seguro a los servicios.
Servidor WebApache HTTP ServerNginxPuerto de escuchaDocument RootArchivos de configuraciónLogs de acceso y errorPermisos de archivosDespliegue de aplicacionesMódulos del servidor web
RA3: Implanta aplicaciones Web en servidores de aplicaciones, evaluando y aplicando criterios de configuración para su funcionamiento seguro.
Servidor de Aplicaciones (AS)Contenedor Web / Servlet ContainerContenedor EJBServlet y JSPJNDIPool de Conexiones JDBCJTA y JMSArchivos de Configuración del ServidorBibliotecas Compartidas (lib/) y JAR HellWAR/EAR y Directorio de Despliegue
RA4: Administra servidores de transferencia de archivos, evaluando y aplicando criterios de configuración que garanticen la disponibilidad del servicio.
FTP (File Transfer Protocol)SFTP (SSH File Transfer Protocol)Puertos de red (20, 21, 22)Modo activo y pasivo de FTPFirewallChroot jailvsftpdOpenSSHUsuarios localesGrupos de usuarios
RA5: Verifica la ejecución de aplicaciones Web comprobando los parámetros de configuración de servicios de red.
DNSFQDNTLDRegistro ARegistro CNAMEResolución de nombresZona DNSSplit-Horizon DNSServicio de DirectorioLDAP
RA6: Elabora la documentación de la aplicación Web evaluando y seleccionando herramientas de generación de documentación y control de versiones.
Documentación de códigoGeneradores de documentaciónJavadocPHPDocJSDocOpenAPI/SwaggerFormatos de documentación (HTML, PDF, Markdown)Colaboración en documentaciónWikis empresarialesConfluence
Trampas habituales antes del examen
- Confundir servidor web con servidor de aplicaciones: La causa es que ambos manejan peticiones HTTP. La corrección es entender que el servidor web se enfoca en contenido estático y proxy, mientras que el servidor de aplicaciones ejecuta lógica de negocio dinámica.
- Errores de sintaxis en ficheros de configuración: Causa por un carácter mal colocado o directiva incorrecta. Corrección usando `apachectl configtest` o `nginx -t` antes de reiniciar.
- Problemas de firewall: Causa por no abrir los puertos 80/443. Corrección configurando UFW o iptables para permitir el tráfico.
- Problemas de permisos: Causa por el usuario del servicio sin permisos de lectura/escritura. Corrección asignando permisos adecuados con `chown` y `chmod`.
- Falta de dependencias o drivers: Causa por no incluir librerías necesarias (ej. JDBC drivers) en el classpath. Corrección copiando los archivos JAR/librerías al directorio correcto y reiniciando el servicio.
- Archivos estáticos no accesibles: Causa por configuración incorrecta del servidor web o permisos. Corrección verificando `DocumentRoot` o `location` y permisos.
- Documentación incompleta o desactualizada: Causa por falta de tiempo o cambios no registrados. Corrección integrando la documentación en el proceso de despliegue y usando versionado.
- **Permisos de archivos incorrectos:** Causa: Asignar permisos excesivos (777) por desconocimiento o insuficientes (solo lectura para el usuario del servidor en directorios de escritura). Corrección: Aplicar el principio de mínimo privilegio; el usuario del servidor web solo necesita leer archivos estáticos y escribir en directorios específicos (cache, uploads) con permisos como 755 para directorios y 644 para archivos.
- **DocumentRoot mal configurado:** Causa: Apuntar el DocumentRoot a la raíz del proyecto en lugar del directorio público de la aplicación. Corrección: Identificar el directorio que contiene el `index.php` o `index.html` principal de la aplicación y configurarlo como DocumentRoot para evitar la exposición de archivos sensibles.
- **Conflictos de ServerName:** Causa: Dos o más Virtual Hosts comparten el mismo ServerName o ServerAlias en el mismo puerto. Corrección: Asegurar que cada Virtual Host basado en nombre tenga un ServerName único y que el DNS apunte correctamente a la IP del servidor.
- **Módulo no activado:** Causa: Intentar usar directivas de un módulo (ej. RewriteRule) sin haber cargado el módulo (`LoadModule`) previamente. Corrección: Verificar la activación del módulo y reiniciar el servidor.
- **Credenciales en texto plano:** Causa: Usar autenticación básica sin HTTPS, exponiendo nombres de usuario y contraseñas a la interceptación. Corrección: Siempre usar autenticación básica junto con HTTPS para cifrar la comunicación.