Hoppa till innehåll

Ligger en domän hos en DNS-leverantör som sslbrain inte har inbyggd finns det fyra vägar till domänvalidering. Använd CNAME-vidarebefordran när DNS-leverantören kan skapa en CNAME-post.

  • Er DNS-leverantör finns inte bland de inbyggda leverantörerna, eller den har inget API.
  • Ni kör en egen DNS-server.
  • Ni vill inte ge sslbrain en API-nyckel som kan ändra hela zonen.

Vägarna:

Ni skapar en gång en CNAME-post från _acme-challenge.<domän> till appliancens CNAME-mål. sslbrain får ingen nyckel till er DNS. Appliancen måste vara ansluten till sslbrain Cloud.

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

Appliancen uppdaterar er DNS-server med nsupdate enligt RFC 2136, signerat med en TSIG-nyckel. Det kräver att:

  • 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.
  • Zonen syns utifrån. CA:n slår upp valideringsposten i publik DNS.
  1. Klicka på Lägg till DNS-API-uppgift (DNS-API). Formuläret kräver en inbyggd leverantör. Välj till exempel Hetzner DNS, skriv valfri text i Hetzner DNS API Token och klicka på Spara. Texten används inte.

  2. Öppna uppgiften igen under Åtkomstuppgifter och välj native (RFC 2136 nsupdate) under Executor adapter.

  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
  4. Skriv zonen i Zone-bindinger (en pr linje) och spara.

Har DNS-leverantören ett REST-API som sslbrain inte har inbyggt beskriver ni API:et i ett formulär. sslbrain använder beskrivningen för att hitta zonen, skapa valideringsposten och ta bort den igen. 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örs mot leverantören utan att spara något.

  4. Klicka på Spara.

Leverantören anropas alltid direkt från appliancen, aldrig via sslbrain Cloud-proxyn. En ändring 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. Webbgränssnittet kan inte lägga filen på appliancen, så den läggs på plats så här:

  • Virtuell appliance: välj 9 Danger zone och 1 Open a root shell i konsolmenyn. Root-skalet öppnas med ett svar från sslbrain Cloud. Lägg filen i /opt/sslbrain/data/dns-scripts/, som är /data/dns-scripts/ 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.

Skapa uppgiften som för RFC 2136, men välj script under Executor adapter. Fyll i Sti til operator-script, till exempel /data/dns-scripts/<namn>.sh, och vid behov Script timeout (sekunder) (5 till 300, standard 60). Fälten 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.
  • Egen REST-leverantör: öppna uppgiften under Åtkomstuppgifter och klicka på Testa åtkomst.
  • RFC 2136 och skript: det finns ingen Testa åtkomst. Skapa installationsplanen enligt steg 8. Panelen Domänvalidering i guiden ska visa “Valideras via DNS API-credential” och uppgiftens namn.

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