Hoppa till innehåll

sslbrain har 19 inbyggda DNS-leverantörer. Ligger en domän någon annanstans finns det fyra vägar till domänvalidering.

  • Er DNS-leverantör finns inte med bland de inbyggda leverantörerna, eller den har inget API.
  • Ni kör en egen DNS-server för interna eller externa zoner.
  • Ni vill inte ge sslbrain en API-nyckel som kan ändra hela zonen.
SituationVäg
Alla leverantörer, även utan APICNAME-vidarebefordran
Egen DNS-server som tar emot dynamiska uppdateringar med TSIGRFC 2136
Leverantör med ett REST-API som sslbrain inte känner tillEgen REST-leverantör
Ett skript som redan ligger på appliancenSkript

Ni skapar en gång en CNAME-post från _acme-challenge.<domän> till appliancens CNAME-mål. Därefter behöver DNS för domänen inte röras igen, och sslbrain får ingen nyckel till er DNS. Det enda som krävs är att er DNS-leverantör kan skapa en CNAME-post och att appliancen är ansluten till sslbrain Cloud.

Tillvägagångssättet beskrivs under CNAME-vidarebefordran i steg 6.

sslbrain kan uppdatera er egen DNS-server med RFC 2136 (dynamic update), signerat med en TSIG-nyckel. Appliancen kör själv nsupdate mot namnservern.

Förutsättningar:

  • Namnservern är auktoritativ för zonen och tar emot uppdateringar signerade med TSIG, till exempel BIND.
  • TSIG-nyckeln får skapa och ta bort TXT- och CNAME-poster under _acme-challenge i zonen.
  • Appliancen når namnservern över nätverket.
  • CA:n slår upp valideringsposten i publik DNS, så zonen måste synas utifrån.
  1. Skapa en DNS-API-uppgift med Lägg till DNS-API-uppgift enligt DNS-API. Formuläret för en ny uppgift kräver en inbyggd leverantör. Välj till exempel Hetzner DNS och skriv valfri text i Hetzner DNS API Token; fältet används inte när adaptern har bytts i steg 2. Klicka på Spara.

  2. Öppna uppgiften igen under Åtkomstuppgifter och välj native (RFC 2136 nsupdate) under Executor adapter (fältet heter så även i det svenska gränssnittet).

  3. Fyll i fälten. De visas på danska:

    FältVärde
    Nameserver (server)Namnserverns namn eller adress, till exempel ns1.internal.example.com
    ZoneZonen, till exempel example.com
    TSIG algoritmehmac-sha256 (standard), hmac-sha384, hmac-sha512, hmac-sha224 eller hmac-sha1
    TTL (sekunder)5 till 86400, standard 60
    AnvändarnamnTSIG-nyckelns namn
    Lösenord / NyckelTSIG-nyckelns hemlighet i base64. Den ersätter texten från steg 1
  4. Skriv zonen i Zone-bindinger (en pr linje), så att uppgiften används för namn i zonen, och spara.

Har DNS-leverantören ett REST-API som sslbrain saknar en inbyggd leverantör för, beskriver ni API:et i ett formulär. sslbrain använder beskrivningen för att hitta zonen, skapa valideringsposten och ta bort den igen. Beskrivningen sparas utan nycklar; nycklarna ligger krypterade i vaulten på uppgiften.

  1. Klicka på Lägg till DNS-API-uppgift och välj Ny anpassad REST DNS-leverantör… under DNS-udbyder.

  2. Beskriv leverantören:

    AvsnittFält
    LeverantörenLeverantörens namn, Beskrivning (valfri), Bas-URL (bara HTTPS på en publik adress)
    InloggningAuth-typ: Bearer token, Basic auth (användarnamn och lösenord), namngiven header, nyckel och secret i en header, eller query-parameter. Alternativen visas på danska. Därefter Header-namn, Header-format eller Query-parameter beroende på typen
    ZonerSökväg till zonlistan (GET), JSON-path till listan, JSON-path till zon-id, JSON-path till zonnamn
    Skapa recordMetod (POST, PUT eller PATCH), Sökväg, Body-template (JSON), TTL (sekunder)
    Radera recordRadering: Single-call (skapandet returnerar record-id, och radering är en DELETE) eller Tvåsteg (lista records, hitta id via JSON-path, sedan DELETE), med sökvägarna och JSON-paths till dem

    Sökvägar och body kan använda {zone_id}, {zone}, {name} (relativt till zonen), {fqdn}, {type}, {value} och {ttl}. Sökvägen för radering kan också använda {record_id}. En JSON-path skrivs med punkt, till exempel data.records eller result.

  3. Fyll i nycklarna och klicka på Testa åtkomst. Testet kör beskrivningen och nycklarna mot leverantören utan att spara något.

  4. Klicka på Spara.

En egen REST-leverantör anropas alltid direkt från appliancen, aldrig via sslbrain Cloud-proxyn. Ändringar i beskrivningen gäller alla uppgifter som använder leverantören.

En DNS-API-uppgift kan köra ett skript på appliancen i stället för att anropa en leverantör. Skriptet måste ligga som en körbar fil på appliancen, till exempel /data/dns-scripts/<namn>.sh. Appliancens webbgränssnitt kan inte lägga en fil där, så filen läggs på plats från maskinen:

  • Virtuell appliance: välj 9 Danger zone och sedan 1 Open a root shell i konsolmenyn (konsolmenyn) och lägg filen i /opt/sslbrain/data/dns-scripts/. Katalogen är /data inne i appliancen.
  • Docker: lägg filen i katalogen dns-scripts på den volym som är monterad som /data.

Gör filen körbar med chmod 755. Kommer ni inte åt appliancens filsystem, använd RFC 2136 eller en egen REST-leverantör.

Skriptet väljs som för RFC 2136 ovan, men med script under Executor adapter. Fälten är Sti til operator-script och Script timeout (sekunder) (5 till 300, standard 60). De visas på danska.

Skriptet får de här miljövariablerna:

VariabelInnehåll
SSLBRAIN_DNS_ACTIONcreate eller remove
SSLBRAIN_DNS_RECORD_NAMEPostens namn
SSLBRAIN_DNS_RECORD_TYPEPostens typ
SSLBRAIN_DNS_RECORD_VALUEPostens värde
SSLBRAIN_DNS_FQDNNamnet som valideras
SSLBRAIN_DNS_AUTODNS_TARGETAppliancens CNAME-mål
SSLBRAIN_DNS_REQUIREMENT_IDValideringens id, när det finns ett
SSLBRAIN_DNS_USERNAMEAnvändarnamn från uppgiften
SSLBRAIN_DNS_SECRET_FILESökväg till en fil med behörigheterna 0600 som innehåller Lösenord / Nyckel. Hemligheten står aldrig på kommandoraden

Exit-kod 0 betyder utfört, 2 betyder utfört med varning, och alla andra koder betyder fel.

  • CNAME-vidarebefordran: skriv ett namn i zonen under Testa en domän på Domänvalidering och klicka på Kontrollera domän. Testet kontrollerar bara CNAME-omdirigeringar.
  • Egen REST-leverantör: öppna uppgiften under Åtkomstuppgifter och klicka på Testa åtkomst.
  • RFC 2136 och skript: sidan har ingen Testa åtkomst för de två. Skapa regeln enligt steg 8 och kontrollera panelen Domänvalidering i guiden.
  • Alla fyra vägarna: panelen Domänvalidering i regelns guide visar för varje namn vilken väg som täcker det. För en DNS-API-uppgift står det “Valideras via DNS API-credential” och uppgiftens namn.

Misslyckas utfärdandet ändå, se Valideringen misslyckas.