Synology NAS interne Domain mit Zertifikat

Mit Synology habe ich bisher nicht viel gearbeitet, daher kann ich dir bei der Umstellung konkret nicht wirklich helfen.

Aktuell sieht es so aus, als ob du dein NAS und deinen Router als DNS verteilst. Das kann gelegentlich Probleme bereiten, da Windows z.B. nach minimaler Verzögerung einfach den sekundären DNS befragt. Der kennt dann deine interne Domain vielleicht nicht. Es kann dabei auch leicht passieren, dass du eine Schleife baust (FritzBox leitet unbekannte Adressen an NAS weiter und NAS an FritzBox). Wenn aktuell alles geht, kannst du das natürlich ignorieren, aber das solltest du im Hinterkopf behalten.

Wenn da sonst nichts konfiguriert ist, dann hast du vielleicht einfach keine Standard Suchdomäne. Dann musst du immer den vollen Namen eingeben, was aber auch kein Problem ist.
 
  • Gefällt mir
Reaktionen: dedication
Renegade334 schrieb:
Aktuell sieht es so aus, als ob du dein NAS und deinen Router als DNS verteilst.
Interne Anfragen (internes Netz) soll das NAS abdecken, externe Anfragen (www) soll das Gateway übernehmen. Darum primär zunächst das NAS-DNS und erst danach das DNS-Gateway für Anfragen im Internet, von welchen das NAS ja keine Ahnung hat.
Das hat bisher eigentlich problemlos geklappt. Komme über den Browser sowohl an die internen Geräte, als auch ins Internet. Die DNS-Server einigen sich da also irgendwie.
Aber ja, du hast natürlich recht, Schleifen wären problematisch.
Wobei die Fritzbox keinen Verweis auf das NAS enthält (default dns settings). Der Router sollte also im Grunde keine Ahnung haben, dass da überhaupt ein DNS im NAS des selben Netzes exisitert, zumindest gehe ich mal davon aus. Somit sollte es eigentlich immer nur in maximal eine Richtung gehen: NAS zu Router und nie umgekehrt. Außer natürlich man greift von außerhalb auf die Cloud zu, dann muss der Router selbstverständlich an das NAS weiterleiten, aber das ist ja bisher lediglich eine einzige Ausnahme, welche via Reverse Proxy ebenfalls recht einfach funktioniert.
Aber wie gesagt, hat bisher immer geklappt aber dennoch gut zu wissen.
Renegade334 schrieb:
Wenn da sonst nichts konfiguriert ist, dann hast du vielleicht einfach keine Standard Suchdomäne. Dann musst du immer den vollen Namen eingeben, was aber auch kein Problem ist.
Alles klar, werde ich mal ausprobieren.
Ergänzung ()

So, hab jetzt soweit alles umgestellt und nutze nun [home.DOMAIN.de] als DNS und das läuft auch schon einwandfrei. Besten Dank nochmal für die vielen Tipps und Ratschläge!


Wollte nun für [DOMAIN.de] ein Let's Encrypt Zertifikat beantragen und stoße auf folgende Meldung (siehe Infobox Punkt Nr.2):
1729945764102.png


Dort steht Wildcard-Zertifikate sind lediglich für DDNS verfügbar aber DDNS verwende ich ja nicht, da meine IP statisch ist und ich derzeit keinen Zugriff von außen benötige.
Was mache ich jetzt?
  • kein Wildcard-Zertifikat beantragen und stattdessen nur für [home.DOMAIN.de] und alle folgenden Subdomains extra eins beantragen sowie regelmäßig erneuern (oder alternativ Aliase verwenden, gemäß Punkt Nr. 1 in der Infobox)?
  • DDNS einrichten jedoch (vorerst) nicht verwenden, einfach nur um an das Wildcard-Zertifikat zu kommen?
 
Zuletzt bearbeitet:
How do I obtain a certificate from Let's Encrypt on my Synology NAS?

Synology ist da scheinbar etwas eingeschränkt :/
Renegade334 schrieb:
Das geht entweder mit einem DNS Eintrag oder mit einer API über deinen Anbieter.
Es gibt auch die Möglichkeit das mit einem unter der Adresse erreichbarem Webserver zu machen, aber das macht man kaum noch, weil du damit nur für die eine Adresse ein Zertifikat erhältst.
Scheinbar kann Synology keine Aktualisierung per API und DNS geht nur bei DynDNS von Synology.
Die bieten dir nur HTTP an.
Synology DDNS supports DNS-01 (starting with DSM 6.0) and HTTP-01 validation with Let's Encrypt. Customized domain only supports HTTP-01 validation with Let's Encrypt.
Das ist scheinbar eine Einschränkung der Software von Synology.

Es gibt auch Programme, die dir Zertifikate anfordern können, aber die binden das dann nicht automatisch alle 3 Monate für dich ein (außer du kannst das automatisieren).
Certbot, Certify, Posh-ACME, ...
Die können mit einem Schlüssel deines Domain Anbieters die entsprechenden Prüfungen deiner Domäne machen.

Die Lösung von Synology wäre folgende:
  1. The domains entered in the Domain name and Subject Alternative Name fields should have the same external IP address. You can also apply for a wildcard certificate by entering the domain names of Synology DDNS in the following format: <em>*.SYNOLOGY_DDNS_HOSTNAME</em>. Please note that only Synology DDNS supports wildcard certificate.
Du müsstest dabei einen DynDNS Dienst nehmen (um einen DNS Eintrag für deine externe IP zu bekommen) und an deinem DNS für alle gewünschten Hosts eine Weiterleitung (CNAME) auf deinen DynDNS machen. Das ist aber keine wirklich schöne Lösung. Es würde mich auch nicht wundern, wenn Synology Probleme hat, falls du kein IPv4 hast.

//edit:
Oh ok, deine IP ist statisch. Dann "könntest" du die passenden DNS Einträge ohne CNAME setzen.
Aber da du explizit kein DNS auf deine externe IP wolltest, ist das vielleicht keine passende Lösung für dich. Du müsstest dann auch alle gewünschten Hosts mit deiner externen IP hinterlegen.

Wildcard geht aber mit der Methode auch nicht. Du würdest nur ein Wildcard für deine Synology DynDNS bekommen. Natürlich könntest du auch dein internes LAN auf eine Subdomain von deinem DynDNS umbauen, aber das dürfte auch lang werden.
 
  • Gefällt mir
Reaktionen: dedication
Renegade334 schrieb:
Synology ist da scheinbar etwas eingeschränkt :/
hm, scheint so.
Das heißt also wohl doch 1 Let's Encrypt Zertifikat pro Subdomain und das mit Wildcard vorerst einfach vergessen?
Hab bisher zum Glück nur 2 Subdomains, von daher hält sich das noch im Rahmen.

Oder bezieht sich die Thematik 'HTTP-01' vs. 'DNS-01' auf alles was mit Synology in Verbindung mit Lets' Encrypt zu tun hat, egal ob Wildcard oder einzeln und egal ob DDNS oder nicht? Das wäre natürlich sehr ärgerlich, HTTP nutzt doch inzwischen fast keiner mehr.

Renegade334 schrieb:
Du müsstest dabei einen DynDNS Dienst nehmen (um einen DNS Eintrag für deine externe IP zu bekommen) und an deinem DNS für alle gewünschten Hosts eine Weiterleitung (CNAME) auf deinen DynDNS machen.
So hab ich das bei dem Verweis der externen Domain auf die interne Cloud geregelt, CNAME bei Strato verweist dabei auf die Cloud auf meinem NAS.
Aber hast ja schon richtig festgestellt, das möchte ich eigentlich nur bei Diensten machen, die ich auch tatsächlich im öffentlichen Netz haben möchte (und das ist bisher nur die Cloud).
Darum ja auch meine ursprüngliche Idee, das Ganze intern zu regeln, da braucht es sowas nicht.
Aber mal schaun, irgendwie muss das mit den Zertifikaten ja klappen, ganz so rückständig ist Synology i.d.R. auch wieder nicht.
 
Zuletzt bearbeitet:
@Renegade334
Also hab jetzt einiges ausprobiert aber mit Synology scheint das mit dem Wildcard-Zertifikat tatsächlich nicht zu klappen, es sei denn man greift auf eine Synology-Domain (z.B. synology.me) zurück.
Da ich allerdings bereits meine eigene Domain besitze, kommt das für mich nicht wirklich in Frage.
Und da ich meinen NAS-Login ungern öffentlich erreichbar machen möchte, ist auch das Anfordern eines Zertifikats für jeden Dienst/Anwendung einzeln (samt Weiterleitung an den localhost hier per CNAME) keine wirkliche Option. Schließlich möchte ich nicht auf das Internet zugreifen müssen, nur um mit gültigem Zertifikat auf mein NAS zugreifen zu können.

Hat noch jemand anderes eine Idee wie man das lösen könnte?
Gibt es denn keine Möglichkeit eine selbst erstellte Domain (interne Domain) selbst mit einem Zertifikat zu versehen (also selbst eine CA einzurichten)? Die Zertifikate werden dann von mir selbst signiert, was aber nicht schlimm wäre, ist ja nur für das interne Netz gedacht und nicht von außen erreichbar. Es geht ja nur darum, dass sich die Anwendungen nicht wegen dem Zertifikat beschweren.

Man kann bei Synology auch ein eigenes Zertifikat importieren (siehe Screenshot), jedoch nicht selbst ausstellen, wenn ich das richtig sehe. Wie kann ich also via CA ein eigenes Zertifikat für meine eigene Domain anlegen und dann anschließend importieren?

Edit:
Ich denke das ist momentan der beste Ansatz den ich verfolgen kann. Also interne Domain einrichten, den NAS-Login auf diese interne Domain verweisen lassen und dann mittels eigenem Zertifikat 'absichern'.
Somit komme ich dann mittels z.B. ns.DOMAIN.home auf mein NAS, ohne ein Zertifikat von außen beantragen zu müssen und ohne eine funktionierende Internet-Verbindung zu haben.
Also bleibt nur noch die Frage wie ich eine CA einrichte.

1730113728294.png
 
Zuletzt bearbeitet:
Ok ich lass es jetzt gut sein.
Hab jetzt erneut einige Stunden in die Thematik versenkt, aber für das was ich vorhabe, scheint es keine wirkliche Lösung zu geben.
Schon merkwürdig, dass das noch niemand vor mir versucht hat aber seis drum.
Es ist tatsächlich einfacher, lediglich eine Ausnahme für das nicht-vertrauenswürdige Zertifikat zu setzen und diese Ausnahme im Zweifel eben regelmäßig zu bestätigen, auch wenn das ziemlich nervt (gerade bei dem Mail-Abgleich z.B. über Thunderbird)

Es gibt zwar Lösungen, trotz Synology an ein Let's Encrypt Wildcard-Zertifikat zu kommen, aber das setzt voraus, dass man per SSH das NAS rootet und ein zusätzliches Skript herunterlädt und händisch in der Konsole anwendet (siehe hier: Github acme.sh).
An sich zwar möglich, aber für das was ich möchte im Grunde bereits zu komplex und aufwändig (zudem muss man das alle 3 Monate manuell wiederholen). Mein Ziel war ja sowieso nicht der externe Zugriff, sondern der Interne.

Andere workarounds (welche im Grunde genau dem entsprechen was ich wollte) sind heute nicht mehr aktuell, da Synology seitdem einiges an den Einstellungen geändert hat und das so nicht mehr möglich ist (siehe: Synology.com - Installing self-signed certificates

Mir gehen allmählich die Ideen aus, also lass ich es bleiben. Das ist zu viel Arbeit für zu wenig Nutzen.
An alle die über diesen Thread stolpern:
  • für lokalen Zugriff und damit lokale Domains (z.B. 'example.home' oder alternativ die lokale IP eures NAS) gibt es KEINE Möglichkeit der Authentifizierung der Zertifikate. Alles was ihr machen könnt, ist mit der 'nicht-vertrauenswürdigen Zertifikate-Meldung' euren Frieden zu schließen, was ich nun mache.
  • für externen Zugriff und damit externe Domains (z.B. 'example.de') bei eurem Provider gibt es Möglichkeiten der Authentifizierung der Zertifikate (Wildcard-Zertifikat via Let's Encrypt unter Synology allerdings nur mit einem sehr großen Zusatzaufwand mittels acme.sh, siehe oben)

Danke trotzdem an alle für die Tipps. Schade, dass das nicht klappt, wie ich mir das wünsche.
Manchmal ist die IT-Welt einfach zu eingeschränkt aber damit muss man eben klar kommen.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Renegade334
dedication schrieb:
Ok ich lass es jetzt gut sein.
Hab jetzt erneut einige Stunden in die Thematik versenkt, aber für das was ich vorhabe, scheint es keine wirkliche Lösung zu geben.


Auch wenn das nicht die schönste Lösung ist, dürfte das für dich ausreichen. Damit musst du nur das Root Zertifikat verteilen und hast mehrere Jahre Ruhe statt der 3 Monate von Let's Encrypt.
Damit kannst du dir selbst Zertifikate erstellen die zu einem von dir selbst erstellten Root Zertifikat gehören.
Die Zeiten sind mit 5/10 Jahren nur für Privatgebrauch sinnvoll ;)

PowerShell:
$name = "Home"
$domainName = "home.domain.de"
$password = ConvertTo-SecureString -AsPlainText -Force -String "secret"
$outDir = "$PSScriptRoot\"

$domains = @{
    ServerSAN1          =   "server1.$domainName","server2.$domainName","server3.$domainName"
    ServerABC           =   "serverabc.$domainName"
    PCNETBIOS           =   "pc1.$domainName","pc1"
    wildcard            =   "*.$domainName"
}

$params = @{
    Subject = "$name Root Cert"
    DnsName = "$name Root Cert"
    KeyLength = 4096
    KeyAlgorithm = 'RSA'
    HashAlgorithm = 'SHA512'
    KeyExportPolicy = 'Exportable'
    NotAfter = (Get-Date).AddYears(10)
    CertStoreLocation = 'Cert:\LocalMachine\My'
    KeyUsage = 'CertSign','CRLSign'
  }
$rootCA = New-SelfSignedCertificate @params
$rootCAThumbprint = $rootCA.Thumbprint
 
Export-PfxCertificate -cert Cert:\LocalMachine\My\$rootCAThumbprint -FilePath "$outDir\$rootCAThumbprint-CA.pfx" -Password $password

foreach($domain in $domains.Keys)
{   
    $params = @{
        Subject = "$name - $domain"
        DnsName = $domains[$domain]
        Signer = $rootCA
        KeyLength = 4096
        KeyAlgorithm = 'RSA'
        HashAlgorithm = 'SHA512'
        KeyExportPolicy = 'Exportable'
        NotAfter = (Get-date).AddYears(5)
        CertStoreLocation = 'Cert:\LocalMachine\My'
      }
   
    $cmCert = New-SelfSignedCertificate @params
    $cmCertThumbprint = $cmCert.Thumbprint
   
    Export-PfxCertificate -cert Cert:\LocalMachine\My\$cmCertThumbprint -FilePath "$outDir\$cmCertThumbprint-$domain.pfx" -Password $password
    Remove-Item Cert:\LocalMachine\My\$cmCertThumbprint
}

Move-Item Cert:\LocalMachine\My\$rootCAThumbprint Cert:\LocalMachine\Root
Da die Zertifikate automatisch im lokalen Zertifikatstore abgelegt werden (certlm.msc) will das Script in der aktuellen Form Adminrechte.

Die ersten Zeilen bis zur Liste der Zertifikate ($domains) solltest du anpassen.
In dem Verzeichnis in dem du das Script ausführst werden die Zertifikate mit dem gewählten Kennwort abgelegt.
 
Renegade334 schrieb:
Auch wenn das nicht die schönste Lösung ist, dürfte das für dich ausreichen.
Danke aber ich habe das Thema bereits hinter mir gelassen. Ich verschwende keine Minute mehr mit dem Unsinn.
 
Zurück
Oben