Documentatie · Systeemvereisten

API-, netwerk- en SSL-vereisten

Doel

ADP Car Market Hub is in de basis een integratie-plugin: het grootste deel van de runtime communiceert deze met externe HTTPS-endpoints — de AutoScout24 API voor voertuigen en afbeeldingen, het beheerde Google Gemini-endpoint voor optionele AI-contentgeneratie, en (indirect) WordPress.org voor plugin-updates. Dit document specificeert de verwachtingen voor het uitgaande netwerk en TLS die de plugin aan de host stelt, en legt uit hoe u deze kunt valideren voordat u live gaat.

Wanneer u dit document moet gebruiken

Gebruik dit document wanneer u:

  • Een firewall, uitgaand beleid (egress policy) of uitgaande proxy configureert voor een hostingomgeving.
  • Een API-basis-URL kiest voor de AutoScout24-markt van de dealer (bijv. .com, .ch, .de, …).
  • Verbindings- of authenticatiefouten onderzoekt die worden gerapporteerd door de importeur of door Verbindingstest.
  • TLS-, DNS- en CA-certificaatconfiguraties valideert op een nieuwe server.
  • Controleert met welke externe endpoints de plugin in productie contact zal opnemen.

Overzicht

De plugin maakt uitsluitend gebruik van de standaard HTTP API van WordPress (wp_remote_get / wp_remote_post), die onder de motorkap cURL gebruikt. Hierdoor erft deze de TLS/CA-configuratie van het systeem en eventuele constanten die in wp-config.php zijn ingesteld voor HTTP-transporten en proxy's.

Het netwerkprofiel is:

  • Alleen uitgaand. De plugin opent nooit inkomende poorten buiten wat WordPress zelf doet. De cron-trigger wordt blootgesteld via de standaard WordPress REST API, die al draait op de bestaande HTTPS-listener van de site.
  • Alleen HTTPS. Alle externe endpoints zijn HTTPS op de standaardpoort 443. Er zijn geen plain-HTTP fallbacks.
  • Op tokens gebaseerde authenticatie. De AutoScout24 API maakt gebruik van OAuth 2.0 client-credentials. De plugin vraagt een toegangstoken aan bij de geconfigureerde token-URL, slaat dit op in een transient tot kort voor de expires_in, en verzendt dit als een bearer-token bij volgende verzoeken.
  • Geen persistente sockets. Elk verzoek is een afzonderlijke WordPress HTTP API-aanroep met een time-out van 30 seconden voor tokenverzoeken; het downloaden van afbeeldingen maakt gebruik van de standaard download-time-outs van WordPress.

Vereiste uitgaande endpoints

De host moet uitgaand HTTPS (TCP/443) toestaan naar de volgende bestemmingen.

Verplicht

  • AutoScout24 API-basis-URL — geconfigureerd in Instellingen → API-basis-URL, bijvoorbeeld https://api.autoscout24.com (andere markten gebruiken de landspecifieke host zoals api.autoscout24.ch, api.autoscout24.de, enz.). Wordt gebruikt voor OAuth-tokens, het ophalen van advertenties en het ontdekken van afbeeldings-URL's.
  • AutoScout24 token-endpoint — standaard <base URL>/public/v1/clients/oauth/token. Een aparte optie Token-URL is beschikbaar wanneer het OAuth-endpoint zich op een andere host bevindt dan de API-basis.
  • AutoScout24 afbeeldingenhosts — de advertentie-payloads retourneren absolute afbeeldings-URL's die rechtstreeks in de WordPress mediabibliotheek worden gedownload. Deze hostnamen variëren per markt en kunnen in de loop van de tijd veranderen, dus het firewallbeleid moet AutoScout24 afbeeldings-CDN's als een klasse toestaan in plaats van één specifieke hostnaam vast te pinnen.

Optioneel

  • https://generativelanguage.googleapis.com — vereist wanneer de AI Assistant is ingeschakeld. Wordt gebruikt om het beheerde Google Gemini-endpoint aan te roepen dat is geconfigureerd in AS24CI\Ai_Config.

Aanbevolen

  • https://api.wordpress.org — voor controles op updates van de WordPress-core, het thema en de plugin.
  • De eigen site van de plugin (wanneer aangeroepen door een externe cron) moet bereikbaar zijn vanaf de scheduler die deze triggert.

API-basis-URL en token-URL

De plugin maakt de API-basis-URL en token-URL volledig configureerbaar, zodat elke AutoScout24-markt en elke toekomstige OAuth-hostwijziging kan worden ondersteund zonder een code-update.

  • API-basis-URL (as24ci_base_url). Verplicht. Moet het schema + host zijn (geen slash aan het einde), bijvoorbeeld https://api.autoscout24.ch. De plugin verwijdert slashes aan het einde en weigert aanroepen te doen als dit veld leeg is.
  • Token-URL (as24ci_token_url). Optioneel. Indien leeg, leidt de plugin deze af als <base URL>/public/v1/clients/oauth/token. Stel dit alleen expliciet in als AutoScout24 een andere OAuth-host voor uw account heeft verstrekt.
  • Token-doelgroep (audience) (as24ci_token_audience). Optioneel. Indien leeg, leidt de plugin de doelgroep af van het schema + host van de basis-URL.
  • Client ID en Client Secret — vereiste inloggegevens verstrekt door AutoScout24.
  • Seller ID('s) — door komma's gescheiden lijst van dealer-ID's.

Na het opslaan voert de actie Tabblad Gereedschap → Verbindungstest een echte OAuth- en advertentie-ophaling uit en rapporteert een duidelijke fout als een van de bovenstaande gegevens onjuist is.

SSL-chain en TLS

  • Certificaten. De host moet de certificaatketens vertrouwen die door AutoScout24 worden aangeboden (en door het beheerde Google Gemini-endpoint wanneer AI-functies zijn ingeschakeld). Op moderne Linux-distributies is dit standaard het geval; op langlopende containers of air-gapped images moet de CA-bundel (/etc/ssl/certs/ca-certificates.crt op Debian/Ubuntu, /etc/pki/tls/certs/ca-bundle.crt op systemen uit de RHEL-familie) up-to-date worden gehouden.
  • TLS-versies. De plugin maakt gebruik van de OpenSSL/cURL-stack van het systeem, die op ondersteunde PHP 8.1+-omgevingen standaard onderhandelt over TLS 1.2 of 1.3. AutoScout24 verwacht moderne TLS; sites die zijn vastgepind op oudere versies zullen mislukken met handshake-fouten.
  • Geen uitzonderingen voor zelfondertekende certificaten. De plugin schakelt certificaatverificatie niet uit. Uitgaande proxy's die TLS-interceptie uitvoeren, moeten hun eigen root-CA in de trust store van het systeem installeren; anders mislukt elk verzoek met een certificaatfout.
  • Inkomende TLS. Een geldig openbaar certificaat is ook vereist op de WordPress-site zelf, zowel voor de algemene WordPress-beveiliging als om ervoor te zorgen dat externe schedulers het cron REST-endpoint kunnen aanroepen zonder certificaatwaarschuwingen.

DNS, firewalls en proxy's

  • DNS. Het PHP-proces moet de AutoScout24-hostnamen kunnen resolven (en generativelanguage.googleapis.com wanneer AI-functies zijn ingeschakeld). Zorg er op beveiligde servers met split-horizon of gefilterde DNS voor dat de uitgaande bestemmingen van de plugin resolven vanaf het applicatienetwerk, en niet alleen vanaf het werkstation van de beheerder.
  • Uitgaande firewall. Sta TCP/443 toe naar de hierboven vermelde bestemmingen. Als de firewall een expliciete whitelist van fully qualified domain names (FQDN's) afdwingt, sta dan ten minste de geconfigureerde AutoScout24 API-host toe, plus de AutoScout24 afbeeldings-CDN-hostnamen die in API-reacties te zien zijn.
  • HTTP-proxy's. WordPress respecteert de standaard constanten WP_PROXY_HOST, WP_PROXY_PORT, WP_PROXY_USERNAME, WP_PROXY_PASSWORD en WP_PROXY_BYPASS_HOSTS in wp-config.php. Als uw hostingomgeving een uitgaande proxy dwingt, configureer deze dan zo dat wp_remote_*-aanroepen erdoorheen gaan.
  • Egress IP-pinning. Sommige zakelijke AutoScout24-accounts vereisen mogelijk dat de dealer de uitgaande IP-adressen (egress IP's) doorgeeft die de plugin zal gebruiken. Verifieer dit bij uw AutoScout24-accountmanager en reserveer indien nodig een stabiel uitgaand IP-adres.
  • WAF / reverse proxy aan de WordPress-zijde. Zorg ervoor dat de WAF de Authorization-header op het cron REST-endpoint niet verwijdert of wijzigt, en /wp-json/as24ci/v1/*-reacties niet cachet.

Verbinding testen

De plugin bevat verschillende ingebouwde tools om het netwerk en het API-pad van begin tot eind te verifiëren. Gebruik ze in deze volgorde:

  1. Tabblad Gereedschap → Verbindungstest. Haalt een OAuth-token op van de geconfigureerde token-URL en roept vervolgens het advertenties-endpoint aan. Een succesvolle reactie bevestigt inloggegevens, basis-URL, doelgroep, DNS, TLS en uitgaande firewall in één stap. Fouten retourneren voor mensen leesbare berichten zoals "Missing API Base URL", "Token request failed" of specifieke HTTP-foutcodes.
  2. Tabblad Systeem & Hulp / Status. Toont de geconfigureerde basis-URL, tijdstempels van de laatste uitvoering, cron-modus en de status van optionele integraties. Handig als centraal dashboard voor en na implementatiewijzigingen.
  3. Tabblad Gereedschap → Token-cache wissen. Maakt het gecachte OAuth-token ongeldig, zodat de volgende aanroep een nieuw token ophaalt. Gebruik dit onmiddellijk na het roteren van client-inloggegevens of het wijzigen van de token-URL.
  4. Tabblad Logboeken. Wanneer de Verbindungstest mislukt, wordt de onderliggende fout (bijv. cURL-fout 6 "Could not resolve host", fout 28 "Operation timed out", HTTP 401 van het token-endpoint) vastgelegd met voldoende context om te wijzen op DNS-, firewall-, TLS- of inloggegevensproblemen.

Voor een diepere validatie via de command-line zijn de volgende commando's, uitgevoerd vanaf de webserver zelf, meestal doorslaggevend:

  • DNS: getent hosts api.autoscout24.com (of de geconfigureerde host).
  • Bereikbaarheid en TLS-keten: curl -v https://api.autoscout24.com/ moet de TLS-handshake voltooien zonder certificaatfouten.
  • Token-endpoint: curl -v -X POST -d "grant_type=client_credentials" https://<your-token-url> moet een HTTP 4xx retourneren met een gestructureerde foutmelding, wat bevestigt dat de URL bereikbaar is, zelfs zonder inloggegevens.

Probleemoplossing

  • "Missing API Base URL". Configureer Settings → API Base URL (bijv. https://api.autoscout24.ch) en sla op voordat u het opnieuw probeert.
  • "Missing API credentials (Client ID/Secret)". Plak de inloggegevens die door AutoScout24 zijn verstrekt en sla op.
  • "Token request failed" met HTTP 401/403. Inloggegevens zijn onjuist, verlopen, of de token-URL/doelgroep komt niet overeen met waar AutoScout24 de inloggegevens voor heeft uitgegeven. Verifieer dit in het AutoScout24 partnerportaal.
  • "Token request failed" met HTTP 5xx. Tijdelijk probleem aan de zijde van AutoScout24. Probeer het na een paar minuten opnieuw; de importeur herstelt zich automatisch bij de volgende cron-run.
  • cURL-fout 6 ("Could not resolve host"). DNS is defect op de webserver. Controleer /etc/resolv.conf, de DNS-service van de hostingprovider en eventuele split-horizon-configuraties.
  • cURL-fout 7 ("Failed to connect"). De uitgaande firewall blokkeert TCP/443 naar de bestemming, of een upstream proxy is vereist (configureer WP_PROXY_* in wp-config.php).
  • cURL-fout 28 ("Operation timed out"). Netwerklatentie of een uitgaande proxy die de verbinding vertraagt. Verifieer de bereikbaarheid met curl -v vanaf de webserver zelf.
  • cURL-fout 60 ("SSL certificate problem"). De CA-bundel van het systeem is verouderd of een onderscheppende proxy presenteert een niet-vertrouwd certificaat. Werk ca-certificates (of equivalent) bij en installeer de zakelijke root-CA in de trust store van het systeem.
  • Afbeeldingen worden niet gedownload, hoewel advertenties wel werken. Afbeeldings-URL's kunnen zich op andere AutoScout24-hosts bevinden; verbreed de uitgaande whitelist om de AutoScout24 afbeeldings-CDN's te dekken.
  • Externe cron-aanroepen retourneren 404 voor /wp-json/as24ci/v1/cron-import. WordPress permalinks moeten zijn ingeschakeld (elke instelling behalve "Eenvoudig"). Sla de Permalinks-pagina opnieuw op en probeer het opnieuw.
  • Externe cron-aanroepen retourneren 403 "Invalid or missing token". De header of queryparameter komt niet overeen met het opgeslagen token. Genereer het token opnieuw op het tabblad Import & Limieten en werk de scheduler bij.
  • AI-aanroepen mislukken terwijl AutoScout24-aanroepen slagen. De beheerde Gemini-host (generativelanguage.googleapis.com) is niet toegestaan door de uitgaande firewall, of de beheerde Gemini-configuratie in AS24CI\Ai_Config is niet ingericht. De hoofdimporteur wordt hierdoor niet beïnvloed.

Gerelateerde documenten