Generieren und Erneuern von Let’s Encrypt-Zertifikaten

Generieren und Erneuern von Let’s Encrypt-Zertifikaten

Meine Domain ist (Beispiel): mydomain.eu und sie ist mit meiner dynamischen IP mit np-ip synchronisiert.
Intern habe ich einen Webserver, der Port 80/443 abhört, und ich habe ein neues Wildcard-Zertifikat von Let's Encrypt mit certbot erhalten und stelle es mit DNS-Eintrag (txt) bereit.

Ich denke, das reicht, aber nein ...
Ich brauche ein Zertifikat für einen anderen Server (Cname mydomain.eu : cloud.mydomain.eu e mail.mydomain.eu) und ich habe CName in meinem Provider-Panel eingerichtet.

Außerdem habe ich einen Cloud-Server mit Nextcloud eingerichtet und möchte ein Zertifikat für diesen Server erhalten. Ich erhalte einen Fehler, weil Certbot die Ports 80 und 443 benötigt, mein Ncserver jedoch auf den Ports 81 und 1443 lauscht. In Zukunft möchte ich eine interne Webmail erstellen, die auch auf einem anderen Port lauscht.

Interner Aufbau

Example:
WEBSERVER # www.mydomain.eu - nginx - ip xxx.xxx.xxx.50 --> port 80/443
NEXTCLOUD # cloud.mydomain.eu - apache - ip xxx.xxx.xxx.51 -> port 81/1443
MAIL # mail.cloud.mydomain.eu - nginx/apache - ip xxx.xxx.xxx.52 -> port 82/2443

Nginx WebServer-Konfiguration:

ssl_certificate /etc/letsencrypt/live/mydomain.eu/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mydomain.eu/privkey.pem;

server {
listen 80;
listen [::]:80;
server_name *.mydomain.eu;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name *.mydomain.eu;
root /var/www/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}

server {
listen 80;
listen [::]:80;
server_name cloud.mydomain.eu;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name cloud.mydomain.eu;

location / {
proxy_pass http://xxx.xxx.xxx.51:1443;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}

Was ist die beste Vorgehensweise, um Zertifikate für jeden Server zu erhalten (oder ein Wildcard-Zertifikat)? Ich würde Cron aktivieren, um Zertifikate zu erneuern, ohne txtalle drei Monate einen Datensatz bereitzustellen

Antwort1

falls sich alle Domänen auf demselben Host befinden, können Sie einfach dieselbe Datei in der anderen Konfiguration verwenden (Sie haben erwähnt, dass ein Wildcard-Zertifikat verfügbar ist) …

Es liegt an Ihnen, ob Sie einen Platzhalter für mehrere Dienste oder zusätzliche Zertifikate pro Subdomäne (wieder)verwenden möchten. Wenn Sie ein Platzhalterzertifikat haben und es automatisch erneuert werden soll, benötigen Sie ohnehin eine DNS-Token-Verifizierung (TXT-Eintrag). Sobald die Domäne mithilfe von DNS validiert wurde, müssen Sie nicht einmal einen laufenden Server ausführen, um das Zertifikat zu erhalten. Im Fall eines Zertifikats „pro Domäne“ können Sie also die DNS-Verifizierung der Domäne verwenden, sodass nicht standardmäßige Ports kein Problem darstellen.

Ist es im Falle eines Wildcard-Zertifikats nicht einfacher, alles auf den Standard-Ports 80/443 zu haben? Heutzutage gibt es kein Problem mit SNI (Freigabe der Ports und Unterscheidung basierend auf dem Anforderungsinhalt). In diesem Fall können Sie einen Reverse-Proxy (z. B. Haproxy) haben, der Wildcard-Zertifikate verarbeitet und den Datenverkehr an Backends weiterleitet (nginx, Apache httpd, ...).

--- bearbeiten - 19. Januar 2020: 22:40 MEZ ---

Falls Ihr DNS-Anbieter keine „einfachen“ DNS-Updates anbietet, können Sie die erforderliche „Subdomain“ an Ihr System delegieren und einen lokalen DNS-Server mehr oder weniger nur für den Fall dieser dynamischen Updates laufen lassen – TXT-Einträge …

Nehmen wir an, Domäneexample.comund Ihr lokaler Knoten mit aktualisiertem FQDNlokales-beispiel.com.noip.comverweist auf Ihr System. Im System des Registrars können Sie statische Einträge vornehmen:

_acme-challenge.example.com. 3600 IN NS local-example.com.noip.com.

Auf diese Weise können Sie ganz einfach eine Delegation für DNS-Token für die Domäne example.com an Ihr lokales System vornehmen. Dort können Sie den lokalen DNS-Server (z. B. Bind) mit der konfigurierten Domäne ausführen_acme-challenge.example.comwo Sie dann den TXT-Eintrag lokal aktualisieren können. Bitte beachten Sie, dass in dieser Domäne weder A- noch AAAA-Einträge gültig sind, also nur SOA, NS und dynamische Aktualisierungen, zumindest für TXT ;-).

verwandte Informationen