Documentación · Requisitos del sistema
Requisitos de API, red y SSL
Propósito
ADP Car Market Hub es fundamentalmente un plugin de integración: pasa la mayor parte de su tiempo de ejecución comunicándose con endpoints HTTPS remotos: la API de AutoScout24 para vehículos e imágenes, el endpoint gestionado de Google Gemini para la generación opcional de contenido por IA y (de forma indirecta) WordPress.org para las actualizaciones del plugin. Este documento especifica las expectativas de red saliente y TLS que el plugin requiere del servidor de hosting, y explica cómo validarlas antes de la puesta en marcha.
Cuándo usar este documento
Utilice este documento cuando:
- Configure un cortafuegos, una política de salida o un proxy saliente para un entorno de hosting.
- Elija una URL base de la API para el mercado de AutoScout24 del concesionario (por ejemplo,
.com,.ch,.de, …). - Investigue errores de conexión o autenticación reportados por el importador o por la Prueba de conexión.
- Valide la configuración de TLS, DNS y certificados CA en un nuevo servidor.
- Audite con qué endpoints de terceros se comunicará el plugin en producción.
Descripción general
El plugin utiliza exclusivamente la API HTTP estándar de WordPress (wp_remote_get / wp_remote_post), que emplea cURL internamente, por lo que hereda la configuración de TLS/CA del sistema y cualquier constante establecida en wp-config.php para transportes HTTP y proxies.
El perfil de red es:
- Solo saliente. El plugin nunca abre puertos entrantes más allá de lo que hace el propio WordPress. El activador de cron se expone a través de la API REST estándar de WordPress, que ya se ejecuta en el listener HTTPS existente del sitio.
- Solo HTTPS. Todos los endpoints de terceros son HTTPS en el puerto estándar 443. No existen alternativas en HTTP plano.
- Autenticación basada en tokens. La API de AutoScout24 utiliza credenciales de cliente OAuth 2.0. El plugin solicita un token de acceso a la URL de token configurada, lo almacena en caché en un transient hasta poco antes de su
expires_iny lo envía como un token portador (bearer token) en las solicitudes posteriores. - Sin sockets persistentes. Cada solicitud es una llamada discreta a la API HTTP de WordPress con un tiempo de espera de 30 segundos para las solicitudes de token; las descargas de imágenes utilizan los tiempos de espera de descarga estándar de WordPress.
Endpoints salientes requeridos
El servidor de hosting debe permitir HTTPS saliente (TCP/443) hacia los siguientes destinos.
Obligatorios
- URL base de la API de AutoScout24 — configurada en Ajustes → URL base de la API, por ejemplo
https://api.autoscout24.com(otros mercados utilizan el host específico del país comoapi.autoscout24.ch,api.autoscout24.de, etc.). Se utiliza para tokens OAuth, recuperación de listados y descubrimiento de URLs de imágenes. - Endpoint de token de AutoScout24 — por defecto
<base URL>/public/v1/clients/oauth/token. Dispone de una opción de URL de token independiente cuando el endpoint de OAuth reside en un host diferente al de la base de la API. - Hosts de imágenes de AutoScout24 — los datos de los listados devuelven URLs absolutas de imágenes que se descargan directamente en la biblioteca de medios de WordPress. Estos nombres de host varían según el mercado y pueden cambiar con el tiempo, por lo que la política del cortafuegos debería permitir las CDN de imágenes de AutoScout24 como una clase en lugar de fijar un único nombre de host.
Opcionales
https://generativelanguage.googleapis.com— requerido cuando el AI Assistant está habilitado. Se utiliza para llamar al endpoint gestionado de Google Gemini configurado enAS24CI\Ai_Config.
Recomendados
https://api.wordpress.org— para las comprobaciones de actualizaciones del núcleo, temas y plugins de WordPress.- El propio sitio del plugin (cuando es llamado por un cron externo) debe ser accesible desde el programador que lo activa.
URL base de la API y URL de token
El plugin hace que la URL base de la API y la URL de token sean totalmente configurables para que cualquier mercado de AutoScout24 y cualquier cambio futuro en el host de OAuth puedan ser compatibles sin necesidad de actualizar el código.
- URL base de la API (
as24ci_base_url). Obligatorio. Debe ser el esquema + host (sin barra final), por ejemplohttps://api.autoscout24.ch. El plugin elimina las barras finales y se niega a realizar llamadas si este campo está vacío. - URL de token (
as24ci_token_url). Opcional. Cuando está vacío, el plugin lo deriva como<base URL>/public/v1/clients/oauth/token. Establézcalo explícitamente solo si AutoScout24 ha proporcionado un host OAuth diferente para su cuenta. - Audiencia del token (
as24ci_token_audience). Opcional. Cuando está vacío, el plugin deriva la audiencia a partir del esquema + host de la URL base. - Client ID y Client Secret — credenciales obligatorias proporcionadas por AutoScout24.
- Seller ID(s) — lista de IDs de concesionario separados por comas.
Después de guardar, la acción Pestaña Herramientas → Prueba de conexión realiza una solicitud OAuth real y una recuperación de listados, reportando un error claro si algo de lo anterior es incorrecto.
Cadena SSL y TLS
- Certificados. El servidor de hosting debe confiar en las cadenas de certificados servidas por AutoScout24 (y por el endpoint gestionado de Google Gemini cuando las funciones de IA están habilitadas). En las distribuciones modernas de Linux esto funciona de forma nativa; en contenedores de larga duración o imágenes aisladas (air-gapped), el paquete de CA (
/etc/ssl/certs/ca-certificates.crten Debian/Ubuntu,/etc/pki/tls/certs/ca-bundle.crten sistemas de la familia RHEL) debe mantenerse actualizado. - Versiones de TLS. El plugin utiliza la pila OpenSSL/cURL del sistema, que en entornos PHP 8.1+ compatibles negocia TLS 1.2 o 1.3 por defecto. AutoScout24 requiere TLS moderno; los sitios limitados a versiones más antiguas fallarán con errores de handshake.
- Sin excepciones para certificados autofirmados. El plugin no desactiva la verificación de certificados. Los proxies salientes que realizan interceptación TLS deben instalar su propia CA raíz en el almacén de confianza del sistema; de lo contrario, cada solicitud fallará con un error de certificado.
- TLS entrante. También se requiere un certificado público válido en el propio sitio de WordPress, tanto por la seguridad general de WordPress como para que los programadores externos puedan llamar al endpoint REST del cron sin advertencias de certificado.
DNS, cortafuegos y proxies
- DNS. El proceso PHP debe resolver los nombres de host de AutoScout24 (y
generativelanguage.googleapis.comcuando las funciones de IA están habilitadas). En servidores securizados con DNS split-horizon o filtrado, asegúrese de que los destinos salientes del plugin se resuelvan desde la red de la aplicación, no solo desde la estación de trabajo del operador. - Cortafuegos saliente. Permita TCP/443 hacia los destinos enumerados anteriormente. Si el cortafuegos aplica una lista de permitidos explícita de nombres de dominio completamente cualificados (FQDN), permita al menos el host de la API de AutoScout24 que configuró más los nombres de host de la CDN de imágenes de AutoScout24 que aparecen en las respuestas de la API.
- Proxies HTTP. WordPress respeta las constantes estándar
WP_PROXY_HOST,WP_PROXY_PORT,WP_PROXY_USERNAME,WP_PROXY_PASSWORDyWP_PROXY_BYPASS_HOSTSenwp-config.php. Si su entorno de hosting obliga a usar un proxy saliente, configúrelas para que las llamadas dewp_remote_*pasen a través de él. - Fijación de IP de salida. Algunas cuentas corporativas de AutoScout24 pueden requerir que el concesionario proporcione las IPs de salida que utilizará el plugin. Verifique esto con su gestor de cuentas de AutoScout24 y reserve una IP de salida estable si es necesario.
- WAF / proxy inverso en el lado de WordPress. Asegúrese de que el WAF no elimine ni altere la cabecera
Authorizationen el endpoint REST del cron, y que no almacene en caché las respuestas de/wp-json/as24ci/v1/*.
Pruebas de conexión
El plugin incluye varias herramientas integradas para verificar la red y la ruta de la API de extremo a extremo. Utilícelas en este orden:
- Pestaña Herramientas → Prueba de conexión. Obtiene un token OAuth de la URL de token configurada y luego llama al endpoint de listados. Una respuesta exitosa confirma las credenciales, la URL base, la audiencia, el DNS, TLS y el cortafuegos saliente en un solo paso. Los fallos devuelven mensajes legibles como "Falta la URL base de la API", "Fallo en la solicitud de token" o códigos de error HTTP específicos.
- Pestaña Sistema y Ayuda / Salud. Muestra la URL base configurada, las marcas de tiempo de la última ejecución, el modo de cron y el estado de las integraciones opcionales. Útil como un panel de control único antes y después de los cambios de despliegue.
- Pestaña Herramientas → Borrar caché de tokens. Invalida el token OAuth almacenado en caché para que la siguiente llamada obtenga uno nuevo. Utilice esto inmediatamente después de rotar las credenciales de cliente o cambiar la URL del token.
- Pestaña Registros. Cuando falla la Prueba de conexión, el error subyacente (por ejemplo, error de cURL 6 "Could not resolve host", error 28 "Operation timed out", HTTP 401 desde el endpoint de token) se registra con suficiente contexto para identificar problemas de DNS, cortafuegos, TLS o credenciales.
Para una validación más profunda desde la línea de comandos, los siguientes comandos ejecutados desde el propio servidor web suelen ser concluyentes:
- DNS:
getent hosts api.autoscout24.com(o el host configurado). - Accesibilidad y cadena TLS:
curl -v https://api.autoscout24.com/debería completar el handshake TLS sin errores de certificado. - Endpoint de token:
curl -v -X POST -d "grant_type=client_credentials" https://<your-token-url>debería devolver un HTTP 4xx con un cuerpo de error estructurado, confirmando que la URL es accesible incluso sin credenciales.
Resolución de problemas
- "Falta la URL base de la API". Configure
Settings → API Base URL(por ejemplo,https://api.autoscout24.ch) y guarde antes de volver a intentarlo. - "Faltan las credenciales de la API (Client ID/Secret)". Pegue las credenciales suministradas por AutoScout24 y guarde.
- "Fallo en la solicitud de token" con HTTP 401/403. Las credenciales son incorrectas, han caducado o la URL de token/audiencia no coincide con aquello para lo que AutoScout24 emitió las credenciales. Verifíquelo en el portal de partners de AutoScout24.
- "Fallo en la solicitud de token" con HTTP 5xx. Problema temporal en el lado de AutoScout24. Vuelva a intentarlo después de unos minutos; el importador se recuperará automáticamente en su próxima ejecución de cron.
- Error de cURL 6 ("Could not resolve host"). El DNS no funciona en el servidor web. Compruebe
/etc/resolv.conf, el servicio DNS del proveedor de hosting y cualquier configuración de split-horizon. - Error de cURL 7 ("Failed to connect"). El cortafuegos saliente está bloqueando el puerto TCP/443 hacia el destino, o se requiere un proxy ascendente (configure
WP_PROXY_*enwp-config.php). - Error de cURL 28 ("Operation timed out"). Latencia de red o un proxy saliente que retrasa la conexión. Verifique la accesibilidad con
curl -vdesde el propio servidor web. - Error de cURL 60 ("SSL certificate problem"). El paquete de CA del sistema está desactualizado o un proxy de interceptación está presentando un certificado no confiable. Actualice
ca-certificates(o equivalente) e instale la CA raíz corporativa en el almacén de confianza del sistema. - Las imágenes no se descargan aunque los listados funcionan. Las URLs de las imágenes pueden residir en diferentes hosts de AutoScout24; amplíe la lista de permitidos salientes para cubrir las CDN de imágenes de AutoScout24.
- Las llamadas de cron externas devuelven 404 para
/wp-json/as24ci/v1/cron-import. Los enlaces permanentes de WordPress deben estar habilitados (cualquier ajuste que no sea "Simple"). Vuelva a guardar la página de Enlaces permanentes y vuelva a intentarlo. - Las llamadas de cron externas devuelven 403 "Token no válido o ausente". La cabecera o el parámetro de consulta no coinciden con el token guardado. Regenere el token en la pestaña Importación y límites y actualice el programador.
- Las llamadas de IA fallan mientras que las de AutoScout24 funcionan. El host gestionado de Gemini (
generativelanguage.googleapis.com) no está permitido por el cortafuegos saliente, o la configuración gestionada de Gemini enAS24CI\Ai_Configno se ha aprovisionado. El importador principal no se ve afectado.