cPanel & WHM heeft twee API's en twee soorten tokens. Welke je nodig hebt hangt af van wiens zones je wilt beheren.
Welk token heb je nodig?
- WHM API-token: voor een serverbeheerder (root) of een reseller. Het bereikt elke DNS-zone van dat account. WHM luistert op poort
2087. - cPanel API-token: voor één hostingaccount. Het bereikt de zones van dat account: het hoofddomein plus de addon- en parked-domeinen. cPanel luistert op poort
2083.
Beide gaan mee in een Authorization-header en vragen niet om je wachtwoord. Je kunt een token altijd intrekken zonder het wachtwoord te wijzigen.
Optie 1: een WHM-token
- Log in op WHM als root of als de reseller.
- Open Development > Manage API Tokens en klik op Generate Token.
- Geef het een naam, bijvoorbeeld
dnsense. Een reseller kan het token beperken tot de rechten die DNS nodig heeft. Stel eventueel een einddatum in. - Klik op Save en kopieer het token. WHM toont het één keer, dus kopieer het voordat je de pagina verlaat.
Optie 2: een cPanel-token
- Log in op cPanel.
- Open Security > Manage API Tokens en klik op Create.
- Geef het een naam, bijvoorbeeld
dnsense, en stel eventueel een einddatum in. - Klik op Create en kopieer het token. Het wordt één keer getoond.
Koppel het aan DNSense
Voeg een koppeling toe, kies cPanel, kies het bijbehorende tokentype en vul in:
- Hostnaam van je server. Noem een andere poort in de host of in het poortveld als die van jou afwijkt.
- Gebruikersnaam: de root, reseller of het hostingaccount waar het token bij hoort.
- API-token, het token dat je net hebt gemaakt.
DNSense importeert de zones die het account kan bereiken en past records aan via dezelfde API als de zone-editor van cPanel.
Beperkingen
DNSense beheert A-, AAAA-, CNAME-, MX-, TXT-, SRV- en CAA-records op cPanel. Andere records in de zone, zoals NS, blijven ongemoeid.
Als de koppeling niet lukt
Test het token eerst. Voor een WHM-token:
curl -H "Authorization: whm <gebruikersnaam>:<token>" "https://<host>:2087/json-api/listzones?api.version=1"
Voor een cPanel-token:
curl -H "Authorization: cpanel <gebruikersnaam>:<token>" "https://<host>:2083/execute/DomainInfo/list_domains"
Een JSON-antwoord betekent dat het token werkt vanaf waar jij zit. Controleer of de firewall van de server DNSense bij poort 2087 of 2083 laat, en of de DNS-rol op de server aanstaat: zonder die rol zet WHM listzones uit.

