# Domeinen en gratis SSL met Let's Encrypt voor je site

> Voeg domeinen en aliassen toe, stel www-doorverwijzingen in, zet DNS zelf of automatisch met een DNS-integratie, en zet HTTPS aan met gratis Let's Encrypt.

De pagina **Domeinen en SSL** van een site beheert de namen waarop je site reageert en de certificaten die hij voor HTTPS gebruikt. Een site heeft één primair domein, kan zoveel aliassen hebben als je wilt, en is ook bereikbaar op een gratis gegenereerd adres op `on-deploy.link`.

Beheert een gekoppelde [integratie](https://ops.vimonto.com/docs/nl/connections/integrations) de DNS van het domein, dan kan Vimonto Deploy de DNS-records voor je maken en zelf HTTPS aanvragen. Voor HTTPS vraag je in een paar klikken een gratis Let's Encrypt-certificaat aan; het vernieuwt automatisch. Je kunt ook een gekocht certificaat installeren, of een certificaatverzoek maken voor je certificaatautoriteit.

![De pagina Domeinen en SSL met het gegenereerde adres, de domeinen van de site en de certificaten](https://ops.vimonto.com/docs-media/nl/site-domains.webp?v=161e760d "De domeinen en certificaten van een site")

## Het gegenereerde on-deploy.link-adres

Elke site kan een adres hebben zoals `kalme-rivier-4821.on-deploy.link`. Vimonto Deploy maakt het DNS-record voor je aan, dus het werkt meteen zonder eigen DNS: handig om een site te testen voordat hij live gaat, of om een preview te delen.

Het adres kies je bij het [aanmaken van de site](https://ops.vimonto.com/docs/nl/sites/create-a-site#domein-of-gegenereerd-adres). Een site die op dit adres is aangemaakt, krijgt vanzelf HTTPS: als laatste stap van de inrichting wacht Vimonto Deploy tot het nieuwe DNS-record naar de server wijst en vraagt dan een Let's Encrypt-certificaat ervoor aan. Een site die met een eigen domein is aangemaakt, slaat deze stap over. Laat je dat domein door een DNS-integratie naar de server wijzen, dan krijgt het op dezelfde manier HTTPS zodra de records resolven (zie [hieronder](#je-domein-automatisch-laten-wijzen-met-een-dns-integratie)); vraag het certificaat anders zelf aan zodra de DNS naar de server wijst, zoals hieronder beschreven.

Op de pagina Domeinen en SSL kun je onder **on-deploy.link-adres**:

- Het adres **Uitzetten**. De site is dan alleen nog bereikbaar op zijn eigen domeinen, en het DNS-record wordt verwijderd.
- Weer een adres **Aanzetten** voor een site die er geen heeft. Een nieuw adres krijgt een andere naam.

Een site waarvan het gegenereerde adres de enige naam is, kan het niet uitzetten: voeg eerst een eigen domein toe, zodat de site altijd minstens één naam houdt.

## Een domein toevoegen

1. Klik op **Domein toevoegen**.
2. Typ het **Domein**, bijvoorbeeld `shop.example.com`.
3. Kies de opties voor **Wildcards** en **Doorverwijzingen** (zie hieronder).
4. Zet eventueel **Als primair domein gebruiken** aan.
5. Kies onder **DNS** hoe het domein zijn DNS-records krijgt, als je DNS-integraties hebt (zie [hieronder](#je-domein-automatisch-laten-wijzen-met-een-dns-integratie)).
6. Klik op **Domein toevoegen**.

Het eerste eigen domein wordt het primaire domein en vervangt het gegenereerde adres (dat ernaast blijft werken). Latere domeinen worden aliassen, tenzij je **Als primair domein gebruiken** aanzet; het vorige primaire domein blijft dan als alias staan.

Nadat je een domein hebt toegevoegd, herschrijft Vimonto Deploy de Nginx-configuratie van de site, controleert die met `nginx -t` en herlaadt Nginx. Beheer je de DNS zelf, dan opent daarna het venster **Instellen** met de DNS-records die je moet aanmaken. Laat je een DNS-integratie het domein laten wijzen, dan doet een taak dat in plaats daarvan.

### Wildcards

- **Uit**: alleen het domein zelf, zoals `shop.example.com`.
- **Aan**: ook alle subdomeinen, zoals `blog.shop.example.com`. Nginx reageert dan ook op `*.shop.example.com`.

### Doorverwijzingen tussen www en het kale domein

| Optie | Wat er gebeurt |
|---|---|
| **Vanaf www. doorverwijzen** (aanbevolen) | `www.example.com` stuurt bezoekers naar `example.com`. |
| **Naar www. doorverwijzen** | `example.com` stuurt bezoekers naar `www.example.com`, dat de site serveert. |
| **Geen doorverwijzing** | Alleen het domein zelf; `www.` hoort er niet bij. |

Doorverwijzingen zijn permanent (`301`) en behouden het pad en de querystring. Je kunt deze opties later wijzigen met **Bewerken** in het menu van het domein.

### Het primaire domein wijzigen of een domein verwijderen

Het menu van elk domein bevat:

- **Stappen tonen**: de DNS-records en de HTTPS-status van dat domein.
- **Bewerken**: de opties voor wildcards en doorverwijzingen wijzigen.
- **Primair maken**: een alias het primaire domein maken.
- **Verwijderen**: niet meer op het domein reageren. Verwijder je het primaire domein, dan neemt de eerste alias het over, en anders het gegenereerde adres. DNS-records die Vimonto Deploy voor het domein bij een gekoppeld account heeft gemaakt, worden mee verwijderd, en de bevestiging noemt ze; andere records verwijder je zelf bij je DNS-provider.

Het primaire domein is het domein dat in de siteheader staat en voor de links van de site wordt gebruikt. De map van de site op de server verandert niet als het primaire domein verandert.

## Je domein met DNS naar de server laten wijzen

> [!TIP]
> Heb je een DNS-integratie? Dan sla je deze stap over: Vimonto Deploy maakt de records voor je aan. Zie [je domein automatisch laten wijzen](#je-domein-automatisch-laten-wijzen-met-een-dns-integratie).

Een domein bereikt je site pas als de DNS ervan naar je server wijst. Maak de records aan bij je DNS-provider (waar het domein beheerd wordt):

| Type | Naam | Waarde | Wanneer |
|---|---|---|---|
| A | `shop.example.com` | het IP-adres van de server | altijd |
| CNAME | `www.shop.example.com` | `shop.example.com` | met een www.-doorverwijzing |
| A | `*.shop.example.com` | het IP-adres van de server | met wildcards aan |

Het venster **Instellen** toont precies deze records voor een domein, met bij elk **Wijst hierheen** of **Nog niet**, en je kunt op een naam of waarde klikken om die te kopiëren. Domeinen waarvan de DNS nog niet naar de server wijst, staan in een waarschuwing boven de domeinen, en elke domeinregel meldt **Wijst naar deze server** of waar het domein in plaats daarvan naartoe wijst. DNS-wijzigingen kunnen een paar minuten nodig hebben.

> [!NOTE]
> Achter een proxy zoals die van Cloudflare verwijst een domein naar de proxy, niet naar je server, dus het lijkt ergens anders naartoe te wijzen. De site kan dan nog steeds werken, en Let's Encrypt kan nog steeds een certificaat uitgeven zolang de proxy gewone HTTP-verzoeken doorlaat.

### Domeinen achter een load balancer

Met [load balancing](https://ops.vimonto.com/docs/nl/sites/load-balancing) wijst het domein naar de load balancer, niet naar de app-servers. Voeg het domein toe aan de site op de load balancer en aan de site op elke app-server, maar maak de DNS-records aan voor het IP-adres van de load balancer, en zet HTTPS aan op de load balancer. Op de app-servers lijkt het domein dan ergens anders naartoe te wijzen; dat is de bedoeling.

## Je domein automatisch laten wijzen met een DNS-integratie

Beheert een van je gekoppelde cloud- of DNS-accounts (Hetzner Cloud, DigitalOcean, Vultr, Akamai, AWS Route 53, Google Cloud DNS of Cloudflare) de zone van het domein, dan kan Vimonto Deploy de records voor je maken. Koppel het account onder **Instellingen** → [Integraties](https://ops.vimonto.com/docs/nl/connections/integrations); de accountkaart toont welke domeinen het beheert.

Heb je DNS-integraties, dan staat onder **Domein** de hint "We zoeken het domein op bij je DNS-providers en zetten de records automatisch goed." Terwijl je typt, haalt Vimonto Deploy de domeinlijsten van je accounts live op, zodat ook een domein dat je net bij een provider hebt toegevoegd wordt gevonden, en een vak **DNS** toont of een integratie het beheert. Is dat zo, kies dan:

- **Automatisch laten wijzen met …** (het account en de zone, bijvoorbeeld `Hetzner Cloud (example.com)`): Vimonto Deploy maakt de records. Dit staat standaard gekozen.
- **Ik beheer de DNS zelf**: bij de DNS-provider verandert niets; maak de records zelf aan zoals hierboven beschreven.

Beheert geen enkele integratie het domein, dan meldt het vak dat en maak je de records zelf aan, of voeg je het domein toe aan een van je DNS-providers (zie hieronder).

### Het domein toevoegen aan een DNS-provider

Heeft nog geen van je accounts het domein, maar heb je wel DNS-integraties, dan biedt het vak **Domein toevoegen aan een DNS-provider** aan. Zet het aan en kies:

- **Provider**: het gekoppelde account waar het bij komt (Hetzner Cloud, DigitalOcean, Vultr, Akamai, AWS, Google Cloud of Cloudflare).
- **Zone**: het domein dat daar wordt aangemaakt. Standaard is dat het domein zonder subdomein, zoals `example.com` voor `shop.example.com`; het moet het domein zelf zijn of een domein waarop het eindigt.

Het vak toont dan de records die het maakt, allemaal **Nieuw**. Klik je op **Domein toevoegen**, dan voegt de taak eerst de zone toe bij de provider (**… toevoegen aan …**), maakt daarna de records en noemt in de uitvoer de nameservers die je voor de zone bij je registrar instelt. Tot je de nameservers bij je registrar hebt aangepast, antwoordt de provider niet voor het domein; HTTPS volgt zodra de DNS resolvet.

> [!NOTE]
> Bij Cloudflare heeft het token voor het aanmaken van een zone **Zone** → **Zone** → **Edit** nodig, en een token dat bij één Cloudflare-account kan. Voeg het domein anders zelf toe in Cloudflare en kies **Domeinen vernieuwen** bij het account.

### Het plan controleren voordat er iets verandert

Met **Automatisch laten wijzen** toont het vak elk record dat het domein nodig heeft, met wat ermee gebeurt:

| Label | Betekenis |
| --- | --- |
| **Nieuw** | Het record bestaat nog niet en wordt aangemaakt. |
| **Klopt al** | Het record wijst al naar deze server; er verandert niets. |
| **Wijzigingen** | Er bestaat een record dat wordt gewijzigd, of er wordt iets verwijderd om ruimte te maken. |

Het zijn dezelfde records als wanneer je het zelf doet: een A-record voor het domein naar het IPv4-adres van de server, `www.` als CNAME naar het domein als een www-doorverwijzing aanstaat, en een A-record voor `*.` met wildcards aan. Onder een record dat verandert, waarschuwt het vak wat dat betekent:

- waar de naam nu naartoe wijst, en dat dat stopt (bijvoorbeeld een site bij een andere host);
- een **AAAA**-record dat wordt verwijderd, omdat IPv6-bezoekers anders naar het oude adres gaan;
- een conflicterend record dat wordt verwijderd om ruimte te maken, zoals een CNAME op dezelfde naam;
- bij Cloudflare, dat de proxy voor deze naam wordt uitgezet, zodat HTTPS en de adressen van bezoekers werken.

Veranderen er bestaande records, vink dan **Deze records wijzigen** aan voordat je op **Domein toevoegen** klikt. Zonder dat vinkje wordt er niets opgeslagen. Vimonto Deploy controleert de records opnieuw als je klikt, zodat het plan dat wordt uitgevoerd het plan is dat je zag.

### Wat er daarna gebeurt

Een taak, **… naar … laten wijzen**, draait op de pagina [activiteit](https://ops.vimonto.com/docs/nl/organization/activity):

1. **DNS bijwerken bij …**: de records worden aangemaakt of gewijzigd precies zoals het plan liet zien. Records bij Cloudflare worden als alleen DNS aangemaakt (niet geproxied).
2. **HTTPS aanvragen**: er wordt een Let's Encrypt-certificaat aangevraagd voor het nieuwe domein (en de namen die al op het actieve certificaat staan). Die taak wacht eerst tot de naam naar de server resolvet, hooguit 10 minuten, vraagt dan het certificaat aan en zet de site op HTTPS.

Wildcardnamen komen niet op het certificaat, omdat Let's Encrypt die alleen met een DNS-challenge uitgeeft. Resolvet de naam niet binnen 10 minuten, dan mislukt de certificaattaak met een melding; de records staan er dan wel, dus vraag later een certificaat aan onder **Certificaten**.

> [!NOTE]
> De server heeft een openbaar IPv4-adres nodig om naartoe te wijzen. Zonder dat toont het vak DNS een fout en beheer je de DNS zelf.

### Welke records verwijdert Vimonto Deploy?

Vimonto Deploy onthoudt elk DNS-record dat het bij een gekoppeld account maakt, met de site, het domein en waarvoor het is: het domein, `www.`, een wildcard of het WebSocket-adres van [Reverb](https://ops.vimonto.com/docs/nl/sites/site-features#reverb). Alleen die verwijdert het ooit:

- Een domein **Verwijderen**: precies de records die voor dat domein zijn gemaakt, gaan weg. De bevestiging noemt ze.
- De site verwijderen: al zijn records gaan weg, in een stap **DNS-records verwijderen**. Zie [site-instellingen](https://ops.vimonto.com/docs/nl/sites/site-settings#een-site-verwijderen).
- Reverb uitzetten: het WebSocket-record gaat weg.

Een record dat al ergens anders naartoe wijst en dat Vimonto Deploy niet heeft gemaakt, wordt nooit overschreven door een functie zoals Reverb: de taak zegt dat je het zelf moet wijzigen. Alleen bij het toevoegen van een domein veranderen bestaande records, nadat je **Deze records wijzigen** hebt aangevinkt.

## HTTPS aanzetten met een gratis Let's Encrypt-certificaat

1. Zorg dat je domeinen naar de server wijzen.
2. Klik onder **Certificaten** op **Toevoegen**, kies **Let's Encrypt** en klik op **Verder**.
3. Vink de domeinen aan die erop moeten. Bij elk staat of het naar deze server wijst.
4. Klik op **Aanvragen**.

Vimonto Deploy installeert zo nodig certbot en vraagt het certificaat aan met de webroot-challenge: Let's Encrypt haalt een bestand op via `http://` uit `/.well-known/acme-challenge/`, dat elke site serveert vanuit `/var/www/letsencrypt`. Er hoeft niets te stoppen, en wachtwoordbeveiliging blokkeert de challenge niet.

Zodra het certificaat is uitgegeven, schakelt de site over op HTTPS:

- Nginx luistert op poort 443 met HTTP/2, TLS 1.2 en 1.3, en stuurt een `Strict-Transport-Security`-header mee.
- Gewone `http://`-verzoeken worden doorgestuurd naar `https://`.
- De siteheader toont **HTTPS**, en elk domein op het certificaat toont **HTTPS** in de lijst.

Bij Let's Encrypt-certificaten staat **vernieuwt automatisch**. De timer van certbot op de server vernieuwt ze voordat ze verlopen en herlaadt Nginx.

> [!WARNING]
> Let's Encrypt geeft het certificaat alleen uit als elk aangevinkt domein naar deze server wijst. Mislukt een aanvraag, controleer dan de DNS-records, vink de domeinen uit die nog niet hierheen wijzen en vraag opnieuw aan. Wildcardnamen kunnen op deze manier niet worden meegenomen.

### Na het toevoegen van een domein

Een certificaat geldt voor de namen waarvoor het is uitgegeven. Voeg je een domein toe aan een site die al HTTPS heeft, dan herinnert Vimonto Deploy je eraan met **Vraag een nieuw certificaat aan**: vraag een nieuw Let's Encrypt-certificaat aan met de nieuwe naam erin, en het vervangt het oude als actief certificaat.

## Je eigen certificaat gebruiken

Klik onder **Certificaten** op **Toevoegen** en kies een van deze opties:

- **Bestaand certificaat**: plak het **Certificaat** in PEM-formaat, gevolgd door de tussencertificaten, en de **Privésleutel** ervan. Vimonto Deploy controleert of de sleutel bij het certificaat hoort voordat Nginx hem gebruikt, en leest de domeinen en de vervaldatum uit het certificaat.
- **Certificaatverzoek (CSR)**: kies de domeinen en vul land, provincie of staat, plaats, organisatie en afdeling in. Vimonto Deploy maakt een privésleutel aan (versleuteld bewaard) en een verzoek om in te dienen bij je certificaatautoriteit. Is het ondertekend, kies dan **Ondertekend certificaat installeren** in het menu van het certificaat en plak het.
- **Certificaat klonen**: gebruik een certificaat dat voor een andere site in je organisatie is geüpload, bijvoorbeeld een wildcardcertificaat dat meerdere sites delen. Let's Encrypt-certificaten kunnen niet gekloond worden.

Bij geüploade certificaten staat **geldig tot** met de vervaldatum. Ze vernieuwen niet: installeer vóór die datum een nieuw certificaat.

## Eén actief certificaat per site

Een site kan meerdere certificaten hebben, maar Nginx serveert er precies één: het actieve, gemarkeerd met **Actief**. Een nieuw certificaat wordt actief zodra het geïnstalleerd is. In het menu van een certificaat kun je:

- Een geïnstalleerd certificaat dat niet actief is **Gebruiken**.
- **HTTPS uitzetten**: de site gaat terug naar `http://`. Het certificaat blijft staan, dus je kunt HTTPS later weer aanzetten.
- Het certificaat **Verwijderen**. Verwijder je het actieve certificaat, dan gaat HTTPS ook uit.

Heeft de site een [eigen Nginx-configuratie](https://ops.vimonto.com/docs/nl/sites/nginx), dan wordt het certificaat geïnstalleerd maar niet aan de configuratie toegevoegd: het taaklogboek vertelt je welke bestandspaden je zelf moet toevoegen.

## Veelgestelde vragen

### Is SSL gratis?

Ja. Let's Encrypt-certificaten zijn gratis en vernieuwen automatisch. Vimonto Deploy rekent er niets voor.

### Hoe lang duurt het voordat mijn domein werkt?

De wijziging in Nginx duurt seconden. DNS-wijzigingen bij je provider komen meestal binnen een paar minuten door, soms langer. Het venster **Instellen** laat zien wanneer elk record naar je server wijst. Met een DNS-integratie wacht Vimonto Deploy tot 10 minuten op de records en zet daarna zelf HTTPS aan.

### Kan Vimonto Deploy mijn DNS-records maken?

Ja, als het domein wordt beheerd door een gekoppeld account van Hetzner Cloud, DigitalOcean, Vultr, Akamai, AWS, Google Cloud of Cloudflare. Koppel het onder [integraties](https://ops.vimonto.com/docs/nl/connections/integrations), voeg dan het domein toe en kies **Automatisch laten wijzen met …**. Domeinen bij andere DNS-providers laat je zelf wijzen.

### Kan ik het on-deploy.link-adres met HTTPS gebruiken?

Ja. Een site die op zijn gegenereerde adres is aangemaakt, krijgt tijdens de inrichting automatisch een Let's Encrypt-certificaat. Anders is het gegenereerde adres een van de namen van de site, dus het staat in de lijst als je een Let's Encrypt-certificaat aanvraagt, en het DNS-record ervan wijst al naar je server.

### Wat als het automatische certificaat mislukt?

De site blijft werken over `http://`, en je krijgt een [melding](https://ops.vimonto.com/docs/nl/more/notifications) dat het certificaat is mislukt. Vraag opnieuw een certificaat aan onder **Certificaten** met **Toevoegen** en **Let's Encrypt**.

### Waarom staat er bij een domein "Alleen HTTP"?

Het domein staat nog niet op het actieve certificaat. Vraag een nieuw certificaat aan waar het in staat.

### Kan ik meerdere domeinen vanuit één site serveren?

Ja. Voeg elk domein toe als alias; Nginx serveert de site op al die domeinen, met de eigen wildcard- en www.-opties van elk domein. Zet ze allemaal op één certificaat.
