Direct naar de inhoud

Een PowerDNS API-sleutel instellen

Dennis Postma29 juli 2026
Leestijd3 minuten
Handleidingen

Zet de PowerDNS-webserver en HTTP API aan, stel een api-key in pdns.conf in en koppel de server aan DNSense.

DNSense handleiding-cover: een PowerDNS API-sleutel ingesteld in pdns.conf

Bij PowerDNS krijg je geen API-sleutel, je kiest er een. Hij staat in pdns.conf en de API antwoordt pas als de ingebouwde webserver aanstaat. Er is niets om in te loggen. Een tekstbestand en een herstart.

pdns.conf aanpassen

Voeg deze instellingen toe aan de configuratie van de Authoritative Server:

api=yes
api-key=<een lange willekeurige string>
webserver=yes
webserver-address=0.0.0.0
webserver-allow-from=<de adressen die mogen verbinden>
  • api-key is het geheim. Genereer hem met openssl rand -hex 32. Laat het changeme uit de documentatie niet staan.
  • webserver-address staat standaard op 127.0.0.1, dus alleen de server zelf kan verbinden. Zet het op 0.0.0.0 of het publieke IP van de nameserver voor toegang van buiten.
  • webserver-allow-from noemt de netmasks die mogen verbinden. Houd het zo smal mogelijk.

Herstart PowerDNS daarna.

Testen

curl -H 'X-API-Key: <je sleutel>' http://127.0.0.1:8081/api/v1/servers/localhost

JSON terug betekent dat de API werkt. De ingebouwde webserver luistert op poort 8081 en spreekt gewoon HTTP.

Zet geen platte HTTP open

Een API-sleutel over gewone HTTP kan iedereen onderweg meelezen. Zet een TLS-proxy zoals nginx of Caddy voor de webserver en laat die op 443 luisteren. PowerDNS adviseert ook webserver-password in te stellen als tweede laag.

Koppelen aan DNSense

Voeg een koppeling toe, kies PowerDNS en vul in:

  • Host. Schrijf https://dns.example.com als hij achter een TLS-proxy staat. Zonder schema wordt gewone HTTP aangenomen.
  • Port, optioneel. DNSense gebruikt 8081 voor HTTP en 443 voor HTTPS als het veld leeg is.
  • API key, de waarde van api-key.

Mislukt de verbinding, kijk dan eerst naar de firewall en webserver-allow-from. Dat is meestal de oorzaak.