Auteur Topic: Let's encrypt met wildcard instellen  (gelezen 38287 keer)

Offline dvandonkelaar

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 12
  • -Ontvangen: 161
  • Berichten: 937
Let's encrypt met wildcard instellen
« Gepost op: 04 juli 2018, 06:57:54 »
Tegenwoordig is het mogelijk om bij Let's encrypt een certificaat met wildcard aan te vragen. Binnen Synology is dit nog niet ondersteund, maar het is wel mogelijk om deze toe te voegen.

Voor het krijgen van dit certificaat moeten onderstaande handelingen uitgevoerd worden. Dit certificaat is voor de NAS en is op basis van dit topic op het Engelse forum. Dit topic is voor het VPNPlus package op de Router en wijkt dus af van onderstaande handelingen.


Automatische werkwijze:
    Eenmalige acties (script instellen en certificaat aanvragen):
1. Verbind met de NAS door middel van PuTTy (bij voorkeur, voor de volgende stappen is dit nodig) of SMB/AFP, ga naar de map waarin het script bewaard mag worden en clone de SynologyLetsEncrypt-repository
git clone https://github.com/dvandonkelaar/SynologyLetsEncrypt.gitDe git clone zal er voor zorgen dat de map SynologyLetsEncrypt aangemaakt wordt. Ga dus naar de map waarin deze submap aangemaakt moet worden (bijv. /volume1/Temp)
Zie de git clone documentation voor alternatieven van dit command.
Standaard is git niet geïnstalleerd binnen DSM. Via de Synocommunity is deze beschikbaar. Waarschijnlijk is git na installatie niet in de $PATH meegenomen en zal deze moeten worden toegevoegd, of worden aangeroepen via /volume1/@appstore/git/bin/git (/volume1 is de locatie waar de packages standaard worden geïnstalleerd. Als dit een ander volume is, zal /volume1 gewijzigd moeten worden).

2a. Wanneer geen verbinding gemaakt is met PuTTy, dan moet deze verbinding gemaakt worden en kan naar de map uit stap 1 genavigeerd worden.

2b. Maak een config.ini aan waarin het domein staat.
echo Domain=mijndomein.nl>>config.iniVervang hier mijndomein.nl door get gewenste domein.

3. Voer het script uit door middel van:
sudo ./SynologyLetsEncrypt.sh
Dit zorgt voor een output waarin onderstaande staat vermeld:
Citaat
Add the following TXT record:
Domain: '_acme-challenge.mydomain.tld'
TXT value: 'LongTextValueWhichNeedsToBeAddedToTheDomain'
Please be aware that you prepend _acme-challenge. before your domain
so the resulting subdomain will be: _acme-challenge.domein.nl
Add the following TXT record:
Domain: '_acme-challenge.mydomain.tld'
TXT value: 'LongTextValueWhichNeedsToBeAddedToTheDomain'
Please be aware that you prepend _acme-challenge. before your domain
so the resulting subdomain will be: _acme-challenge.domein.nl

4. Maak bij de hostingprovider beide DNS TXT records aan met de waarde _acme-challenge en bovenstaande TXT values.
Wacht eventueel even totdat dit volledig is doorgevoerd bij de hostingprovider. Als dit niet is doorgevoerd zal de vervolgstap niet slagen.

    Vervolg acties (het renew-proces):
1. Voer het script uit door middel van:
sudo /volume1/Temp/SynologyLetsEncrypt/SynologyLetsEncrypt.shHierbij is het pad afhankelijk van de installatie-map (zie stap 1 van de eenmalige automatische werkwijze)

Het script geeft redelijk wat output, waarbij alleen informatie wordt gegeven over het proces en geen fouten worden weergegeven.
Tijdens dit proces wordt het certificaat aangevraagd en worden de verkregen certificaten gekopieerd naar een submap (de naam hiervan is de datum van uitvoering) van de certificates-map certificates in de map SynologyLetsEncrypt.
De verkregen certificaten worden gekopieerd naar het standaard certificaat van DSM en naar de verschillende packages, behalve het Acitve Directory package (deze heeft een eigen certificaat).
Als laatste wordt nginx en de packages herstart om de wijzigingen door te voeren.

2. Als dit proces goed gaat kan dit aan de taakplanner van DSM worden toegevoegd.
De taakdetails zijn dan als volgt:
    geplande taak > door gebruiker gedefinieerd script.
    Tabblad algemeen: gebruiker is root
    Planning: Uitvoeren op de volgende datum: Elke 3 maanden herhalen
    Taakinstelling: Opdracht uitvoeren > "/volume1/Temp/SynologyLetsEncrypt/SynologyLetsEncrypt.sh"
Quotes in de taakinstelling zijn niet nodig als het pad geen spaties bevat. Verder is het pad naar de map afhankelijk van de installatie-map (zie stap 1 van de eenmalige automatische werkwijze)
De uitvoerdetails kunnen nog toegestuurd worden om te controleren of het proces goed is verlopen.


Handmatige werkwijze:
1. Verbind met de NAS door middel van PuTTy en log in als root.

2. Download het acme.sh script, welke nodig is om een certificaat te krijgen.
wget https://raw.githubusercontent.com/Neilpang/acme.sh/master/acme.sh
chmod a+x acme.sh

3. Vraag het certificaat op het domein aan, hier moet natuurlijk mijndomein.nl vervangen worden door het gewenste domein.
./acme.sh --issue -d mijndomein.nl -d *.mijndomein.nl --dns --yes-I-know-dns-manual-mode-enough-go-ahead-please
Dit zorgt voor een output die lijkt op aan onderstaande.
Citaat
Creating domain key
The domain key is here: /root/.acme.sh/mijndomein.nl/mijndomein.nl.key
Multi domain='DNS:mijndomein.nl,DNS:*.mijndomein.nl'
Getting domain auth token for each domain
Getting webroot for domain='.mijndomein.nl'
Getting webroot for domain='*.mijndomein.nl'
You need to add the txt record manually.
Add the following TXT record:
Domain: '_acme-challenge.mijndomein.nl'
TXT value: 'LangeTekstValueWelkeInHetDomeinMoetWordenIngevuld'

Please be aware that you prepend _acme-challenge. before your domain
so the resulting subdomain will be: _acme-challenge.mijndomein.nl
Please add the TXT records to the domains, and re-run with --renew.
Please add '--debug' or '--log' to check more details.
See: https://github.com/Neilpang/acme.sh/wiki/How-to-debug-acme.sh

4. Maak bij de hostingprovider een DNS TXT record aan met de waarde _acme-challenge en vul het bovenstaande TXT value in.
Wacht eventueel even totdat dit volledig is doorgevoerd bij de hostingprovider. Als dit niet is doorgevoerd zal de vervolgstap niet slagen.

5. Hierna moet het script opnieuw gedraaid worden met het --renew commando
./acme.sh --renew -d mijndomein.nl -d *.mijndomein.nl --dns --yes-I-know-dns-manual-mode-enough-go-ahead-please
Dit zorgt voor een output die lijkt op onderstaande.
Citaat
....
-----END CERTIFICATE-----
Your cert is in /root/.acme.sh/mijndomein.nl/mijndomein.nl.cer
Your cert key is in /root/.acme.sh/mijndomein.nl/mijndomein.nl.key
The intermediate CA cert is in /root/.acme.sh/mijndomein.nl/ca.cer
And the full chain certs is there: /root/.acme.sh/mijndomein.nl/fullchain.cer

6. Kopieer de benodigde certificaten naar een gedeelde map om deze toe te kunnen voegen aan DSM.
Hieronder is /volume1/Temp aangehouden als gedeelde map.
cp "/root/.acme.sh/mijndomein.nl/mijndomein.nl.cer" "/volume1/Temp/mijndomein.nl.cer"
cp "/root/.acme.sh/mijndomein.nl/mijndomein.nl.key" "/volume1/Temp/mijndomein.nl.key"
cp "/root/.acme.sh/mijndomein.nl/ca.cer" "/volume1/Temp/ca.cer"

7. De certificaten kunnen worden toegevoegd aan DSM zoals in onderstaande screenshots beschreven.
41300-0

41302-1

41304-2

8. Configureer DSM zodat het certificaat bij de benodigde toepassingen gebruikt kan worden.


Update 07-12-2019:
Het automatisch uitvoeren van het proces (aanvragen en updaten) heb ik werkend gekregen. Het script is te vinden op GitHub.
Deze kan automatisch of handmatig uitgevoerd worden en vervangt het huidige certificaat. Dit elimineert onderstaand opgesomde nadelen.


Update 18-12-2019:
Tijdens het updateproces werden de certificaten niet naar de packages gekopieerd door een typfout in een variabele, waardoor de certificaten voor deze packages niet geüpdatet werden.
Het acme.sh-script zet .conf-bestanden in de map /root/.acme.sh. Als deze hier staan wordt de renew-procedure gebruikt en wordt het certificaat op basis van de (in het issue-proces) gespecificeerde DNS-records vernieuwd.
Verder is het oude pad voor de Synology active directory server certificaten toegevoegd aan de uitgesloten paden voor het updaten van de certificaten.
In bovenstaande how-to heb ik de nieuwe werkwijze (d.m.v. het SynologyLetsEncrypt-script) omschreven en de oude (handmatige) en nieuwe werkwijze gesplitst.


Nadelen:
1. Het certificaat is ca. 2 maanden geldig en moet daarna dus opnieuw worden toegevoegd. Gezien met deze methode het certificaat handmatig moet worden toegevoegd zal dit voorlopig ook nog niet automatisch gebeuren.

2. Het via de commandline toevoegen (of vervangen) van een certificaat heb ik nog niet werkend kunnen krijgen, het werkend krijgen van het wildcard certificaat had de eerste prioriteit. Dit proces automatisch laten verlopen totdat Synology dit geïmplementeerd heeft (of totdat mijn setup wijzigt) moet ik nog goed onderzoeken.

3. Het updaten van een certificaat kan volgens mij door een bestaand certificaat te importeren in plaats van een nieuw certificaat toe te voegen (zie 1e screenshot), maar hier heb ik verder geen informatie over kunnen vinden elders op het internet.
--
dvandonkelaar

DS415+ 8GB | 2xWD30EZRX en 2xWD30EFRX | RAID5 EXT4 [Productie]
DS211J | 2x WD20EZRZ | RAID1 EXT4 [Backup]
Eaton Ellipse PRO 650 DIN (Schuko)

Offline zandhaas

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 24
  • -Ontvangen: 206
  • Berichten: 804
Re: Let's encrypt met wildcard instellen
« Reactie #1 Gepost op: 04 juli 2018, 08:05:35 »
Top beschrijving.
Ga het binnenkort ook proberen.
  • Mijn Synology: DS918+
  • Extra's: 16GB RAM
DS213+  DSM 6.2  512MB
DS918+  DSM 7.2  16GB + 2*1TB NVME  Cache
VDSM      DSM 7.2
MR2200ac

Offline Briolet

  • Global Moderator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 180
  • -Ontvangen: 2680
  • Berichten: 16.581
Re: Let's encrypt met wildcard instellen
« Reactie #2 Gepost op: 04 juli 2018, 08:29:49 »
Een voordeel van dit nieuwe systeem is ook geen poort 80 naar de nas hoeft te wijzen. Authenticatie gebeurd via je DNS record.

Dat betekent wel dat je nu ook toegang tot de DNS moet hebben en je met deze methode geen certificaat kunt aanvragen voor je Synology ddns naam.
  • Mijn Synology: DS415+
  • HDD's: 3x 3TB in SHR
  • Extra's: DS212J, RT1900ac

Offline Birdy

  • Global Moderator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 1399
  • -Ontvangen: 8046
  • Berichten: 44.169
  • Fijne feestdagen.......
    • Truebase
Re: Let's encrypt met wildcard instellen
« Reactie #3 Gepost op: 04 juli 2018, 08:54:58 »
Mooie tut :thumbup: deze Sticky gemaakt.


CS406      DSM 2.0-0731    DS508      DSM 4.0-2265      DS411+II  DSM 6.2.4-25556-8   DS115J    DSM 7.1.1-42962-5   DS918+    DSM 6.2.4-25556-8
DS107+     DSM 3.1-1639    DS411slim  DSM 6.2.4-25556   DS213J    DSM 6.2.4-25556-7   DS1515+   DSM 6.2.4-25556-8   DS220+    DSM 7.2.2-72806-2
DS107+     DSM 3.1-1639    DS111      DSM 5.2-5967-9    DS413J    DSM 6.2.3-25426-2   DS716+II  DSM 7.2.2-72806-2   RT2600ac  SRM 1.3.1-9346-12
BeeDrive   1TB             BeeServer  BSM 1.2-65567                                                                 MR2200ac  SRM 1.3.1-9346-12

Offline Melody

  • Bedankjes
  • -Gegeven: 0
  • -Ontvangen: 0
  • Berichten: 8
Re: Let's encrypt met wildcard instellen
« Reactie #4 Gepost op: 01 augustus 2018, 11:43:46 »
Beste D van Donkelaar,

Ik heb mijn NAS synology geupdate van 4.3 naar 6.2 om gebruik te kunnen maken van let's encrypt om een certificaat te verkrijgen om beveiligd op mijn NAS te kunnen komen en om mijn mail fatsoenlijk te kunnen ontvangen en verzenden. Maar helaas is dat nog steeds niet gelukt, totdat ik op het forum dit hele verhaal tegenkwam. Ik begrijp niet alles, maar ik heb putty geinstalleerd en verder kwam ik niet.
Misschien een mogelijkheid voor hulp !!

Frans
  • Mijn Synology: DS213
  • HDD's: 2 X WD30EZRX

Offline Birdy

  • Global Moderator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 1399
  • -Ontvangen: 8046
  • Berichten: 44.169
  • Fijne feestdagen.......
    • Truebase
Re: Let's encrypt met wildcard instellen
« Reactie #5 Gepost op: 01 augustus 2018, 11:59:46 »
Wat snap je niet van stap 2 dan ?


CS406      DSM 2.0-0731    DS508      DSM 4.0-2265      DS411+II  DSM 6.2.4-25556-8   DS115J    DSM 7.1.1-42962-5   DS918+    DSM 6.2.4-25556-8
DS107+     DSM 3.1-1639    DS411slim  DSM 6.2.4-25556   DS213J    DSM 6.2.4-25556-7   DS1515+   DSM 6.2.4-25556-8   DS220+    DSM 7.2.2-72806-2
DS107+     DSM 3.1-1639    DS111      DSM 5.2-5967-9    DS413J    DSM 6.2.3-25426-2   DS716+II  DSM 7.2.2-72806-2   RT2600ac  SRM 1.3.1-9346-12
BeeDrive   1TB             BeeServer  BSM 1.2-65567                                                                 MR2200ac  SRM 1.3.1-9346-12

Offline Briolet

  • Global Moderator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 180
  • -Ontvangen: 2680
  • Berichten: 16.581
Re: Let's encrypt met wildcard instellen
« Reactie #6 Gepost op: 01 augustus 2018, 14:01:21 »
Als dit te hoog gegrepen is, zou ik helemaal van die wildcards afblijven. Synology ondersteunt het niet, dus je moet steeds handmatig updaten. En het hele DNS gebeuren is veel complexer.

Als het alleen voor een paar (sub)domeinen is, kun je veel beter bij de standaard setup blijven. Dat werkt bijna vanzelf.
  • Mijn Synology: DS415+
  • HDD's: 3x 3TB in SHR
  • Extra's: DS212J, RT1900ac

Offline Melody

  • Bedankjes
  • -Gegeven: 0
  • -Ontvangen: 0
  • Berichten: 8
Re: Let's encrypt met wildcard instellen
« Reactie #7 Gepost op: 02 augustus 2018, 16:03:47 »
Ik heb op de link geklikt en daarna op clone/download zipbestand vervolgens uitgepakt en de map  acme.sh-master op mijn desktop gezet. en nu weet ik niet hoe ik verder moet.
  • Mijn Synology: DS213
  • HDD's: 2 X WD30EZRX

Offline dvandonkelaar

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 12
  • -Ontvangen: 161
  • Berichten: 937
Re: Let's encrypt met wildcard instellen
« Reactie #8 Gepost op: 02 augustus 2018, 16:07:07 »
Zoals Briolet al aan geeft is het voor jou denk ik beter om gewoon de Let's encrypt zonder wildcard in te stellen.
Als je de acme.sh-master op je desktop hebt staan dan heb je stap 1 al overgeslagen.

Mocht je toch echt met het wildcard certificaat willen werken, begin dan bij stap 1 van deze tutorial.
--
dvandonkelaar

DS415+ 8GB | 2xWD30EZRX en 2xWD30EFRX | RAID5 EXT4 [Productie]
DS211J | 2x WD20EZRZ | RAID1 EXT4 [Backup]
Eaton Ellipse PRO 650 DIN (Schuko)

Offline Melody

  • Bedankjes
  • -Gegeven: 0
  • -Ontvangen: 0
  • Berichten: 8
Re: Let's encrypt met wildcard instellen
« Reactie #9 Gepost op: 02 augustus 2018, 16:26:14 »
Volgens mij heb ik stap 1 gedaan.
Putty geinstalleerd, private key en public key gemaakt en Putty actief gemaakt door in te loggen
  • Mijn Synology: DS213
  • HDD's: 2 X WD30EZRX

Offline dvandonkelaar

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 12
  • -Ontvangen: 161
  • Berichten: 937
Re: Let's encrypt met wildcard instellen
« Reactie #10 Gepost op: 02 augustus 2018, 16:55:23 »
Dat is goed, maar als je dan stap 2 volgt (onderstaande code) komt de acme.sh-master niet op je bureaublad terecht volgens mij.

wget https://raw.githubusercontent.com/Neilpang/acme.sh/master/acme.sh
chmod a+x acme.sh
--
dvandonkelaar

DS415+ 8GB | 2xWD30EZRX en 2xWD30EFRX | RAID5 EXT4 [Productie]
DS211J | 2x WD20EZRZ | RAID1 EXT4 [Backup]
Eaton Ellipse PRO 650 DIN (Schuko)

Offline Birdy

  • Global Moderator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 1399
  • -Ontvangen: 8046
  • Berichten: 44.169
  • Fijne feestdagen.......
    • Truebase
Re: Let's encrypt met wildcard instellen
« Reactie #11 Gepost op: 02 augustus 2018, 16:57:24 »
Daarom vroeg ik ook:
Wat snap je niet van stap 2 dan ?
Maar geen antwoord opgekregen.


CS406      DSM 2.0-0731    DS508      DSM 4.0-2265      DS411+II  DSM 6.2.4-25556-8   DS115J    DSM 7.1.1-42962-5   DS918+    DSM 6.2.4-25556-8
DS107+     DSM 3.1-1639    DS411slim  DSM 6.2.4-25556   DS213J    DSM 6.2.4-25556-7   DS1515+   DSM 6.2.4-25556-8   DS220+    DSM 7.2.2-72806-2
DS107+     DSM 3.1-1639    DS111      DSM 5.2-5967-9    DS413J    DSM 6.2.3-25426-2   DS716+II  DSM 7.2.2-72806-2   RT2600ac  SRM 1.3.1-9346-12
BeeDrive   1TB             BeeServer  BSM 1.2-65567                                                                 MR2200ac  SRM 1.3.1-9346-12

Offline dvandonkelaar

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 12
  • -Ontvangen: 161
  • Berichten: 937
Re: Let's encrypt met wildcard instellen
« Reactie #12 Gepost op: 02 augustus 2018, 17:04:58 »
@Melody Volg anders deze handleiding van Synology zelf.
Werkt net zo goed voor de standaard gebruikers en is wellicht beter in jouw situatie.
--
dvandonkelaar

DS415+ 8GB | 2xWD30EZRX en 2xWD30EFRX | RAID5 EXT4 [Productie]
DS211J | 2x WD20EZRZ | RAID1 EXT4 [Backup]
Eaton Ellipse PRO 650 DIN (Schuko)

Offline Melody

  • Bedankjes
  • -Gegeven: 0
  • -Ontvangen: 0
  • Berichten: 8
Re: Let's encrypt met wildcard instellen
« Reactie #13 Gepost op: 02 augustus 2018, 17:17:03 »
Dank je wel voor alle hulp en info, maar krijg ik hiermee mijn mail weer op orde? En ik zou ook graag als ik inlog op mijn NAS dat het beveiligd is met een groen slotje, want dat is het nu niet. Klik ik op onbeveiligd dan staat daar dat er een ongeldig certificaat is, vandaar dat ik deze wildcard van let's encrypt wilde installeren.

Zal de raad opvolgen.
  • Mijn Synology: DS213
  • HDD's: 2 X WD30EZRX

Offline dvandonkelaar

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 12
  • -Ontvangen: 161
  • Berichten: 937
Re: Let's encrypt met wildcard instellen
« Reactie #14 Gepost op: 02 augustus 2018, 17:47:27 »
Wildcard is niet per se nodig, als je maar een geldig certificaat hebt.
Als je met je NAS verbind vanuit je interne netwerk maakt het m.i. niet zoveel uit of je een groen slotje hebt of niet, je weet immers waarmee je verbind dus weet je ook of het veilig is.
--
dvandonkelaar

DS415+ 8GB | 2xWD30EZRX en 2xWD30EFRX | RAID5 EXT4 [Productie]
DS211J | 2x WD20EZRZ | RAID1 EXT4 [Backup]
Eaton Ellipse PRO 650 DIN (Schuko)


 

Toch nog een keer Let's Encrypt: krijg foutmelding

Gestart door pvkanBoard Synology DSM algemeen

Reacties: 11
Gelezen: 1890
Laatste bericht 12 januari 2020, 11:35:03
door Briolet
Synology SSL VPN instellen op RT2600AC router-achter-een-router

Gestart door peter.venkmanBoard Synology Router

Reacties: 13
Gelezen: 2445
Laatste bericht 20 juli 2020, 19:46:43
door Briolet
Opslag op nas instellen op verschillende pc´s

Gestart door LennyBoard Windows

Reacties: 2
Gelezen: 925
Laatste bericht 19 december 2021, 15:28:52
door Lenny
VERPLAATST: Let's Encrypt certificate expiration

Gestart door BirdyBoard Netwerk algemeen

Reacties: 0
Gelezen: 491
Laatste bericht 04 december 2023, 11:07:29
door Birdy
Hoe vind ik een specialist die voor onze mailserver kan instellen?

Gestart door MalkaBoard Mail Server

Reacties: 10
Gelezen: 4507
Laatste bericht 01 maart 2017, 09:25:31
door MiH