Wechsel von SSL-Kaufzertifikat auf Let's Encrypt

#1

Hallo,

noch haben wir ein gekauftes Zertifikat auf server.schuldomain.de

Ich möchte allmählich mal den Umstieg auf Let’s Enctypt planen.

Bislang habe ich eine interne “Startseite” unter /var/www liegen, Nextcloud liegt unter /var/www/nextcloud, analog andere Dienste je in ihrem Unterordner.

Mit /etc/apache2/sites-enabled/000-default.conf

<VirtualHost *:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    <IfModule mod_headers.c>
    Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"
    Header always set Referrer-Policy no-referrer
    Redirect 301 /.well-known/carddav /schulcloud/remote.php/dav
    Redirect 301 /.well-known/caldav /schulcloud/remote.php/dav
     </IfModule>

ServerName Nextcloud

<Directory /var/www/nextcloud/>
AllowOverride All

Bei den gelesenen Anleitungen heißt es immer, man solle die Domain(s) als Virtual Host anlegen.

Also für die (Sub)Domain nextcloud.schuldomain.de ein Verzeichnis /var/www/nextcloud.schuldomain.de
und
/etc/apache2/sites-available/nextcloud.schuldomain.de

<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName nextcloud.schuldomain.de
ServerAlias nextcloud.schuldomain.de
DocumentRoot /var/www/nextcloud.schuldomain.de
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

<Directory /var/www/nextcloud.schuldomain.de/>
AllowOverride All

Imho sollte ich das aber doch so lassen können wie es ist, wenn ich nur eine Subdomain habe (wobei ich natürlich drüber nachdenken könnte, von https://server.schuldomain.de/nextcloud auf https://nextcloud.schuldomain.de zu wechseln), oder kommt cerbot damit dann nicht klar, wenn ich mit

certbot --apache -d server.schuldomain.de

das Zertifikat beziehe?

Was ich in der zitierten Anleitung (https://www.webhosterwissen.de/know-how/eigener-webserver/tutorial-apache-lets-encrypt-fuer-ssl-schutz/) auch komisch finde, dass da <VirtualHost *:80> steht statt <VirtualHost *:443> ?!?

Irgendwas habe ich zwar im Hinterkopf, dass der Server per http (Port 80) erreichbar sein muss…

Wobei, das wäre eh ein Problem, ist er nämlich nicht.

Viele Grüße
Steffen

#2

Hi Steffen,
ich stehe vor der gleichen Aufgabe und möchte meine Nextcloud let’sencrypten. Ein Problem ist, dass certbot keine Subdomains akzeptiert.
Folglich wirst du mit server.schuldomain.de nicht weit kommen - fürchte ich.

Gruß
Roland

#3

Hallo Roland,

ich stehe vor der gleichen Aufgabe und möchte meine Nextcloud
let’sencrypten. Ein Problem ist, dass certbot keine Subdomains akzeptiert.
Folglich wirst du mit server.schuldomain.de
http://server.schuldomain.de nicht weit kommen - fürchte ich.

hm… aber wenn ich richtig erinnere, haben hier doch etliche so was wie
cloud.schuldomain.de in Verwendung?!?

schuldomain.de und www.schuldomain.de sind halt schon für die Homepage
weg, und die liegt nicht in der Schule sondern bei Belwü.

Also wie löst man das dann?

Viele Grüße
Steffen

#4

Hallo Roland,

ich stehe vor der gleichen Aufgabe und möchte meine Nextcloud
let’sencrypten. Ein Problem ist, dass certbot keine Subdomains akzeptiert.
Folglich wirst du mit server.schuldomain.de
http://server.schuldomain.de nicht weit kommen - fürchte ich.

hm… aber wenn ich richtig erinnere, haben hier doch etliche so was wie
cloud.schuldomain.de in Verwendung?!?

schuldomain.de und www.schuldomain.de sind halt schon für die Homepage
weg, und die liegt nicht in der Schule sondern bei Belwü.

Also wie löst man das dann?

Viele Grüße
Steffen

#5

Hallo Steffen,

mittlerweile kann LetsEncrypt auch Wildcard-Zertifikate erstellen.

Du beantragst also für *.schuldomain.de das Zertifikat und sicherst damit alles ab. Funktioniert sehr elegant auch mit einem nginx als Reverse Proxy.

Viele Grüße
Thomas

#6

Hi Steffen,hi Roland

certbot würde ich schon gleich mal gar nicht nehmen. Installiere doch linuxmuster-dehydrated und suche den entsprechenden Thread hier im ask.
Ich habe zwar damit noch nicht die Wildcard-Zertifikate ausprobiert, aber ich verwende sehr wohl cloud.schule.de sowie server.schule.de usw. und im Prinzip rufe ich dehydrated für jede Domäne extra auf. Falls das mit den Wildcard-Zertifikaten irgendwo klemmt, kannst du immer auf diese Variante zurück.

Von außen muss halt nur die entsprechende Seite aufrufbar sein, z.B. http://server.schule.de/.well-known/acme/anyfile_that_lies_here
damit LE das zertifiziert.

  • immer erst mit “staging” testen, nicht vergessen.

(die dritte Variante, dass du alle deine Domänen in ein zertifikat packst habe ich lange auch gemacht, das ging auch, da gilt weiterhin obiges, dass http://server.schule.de/.well-known/acme/und http://cloud.schule.de/.well-known/acme/usw zugreifbar sein muss. Da kam dann ein Zertifikat dabei raus, das für alle angegebenen Domänen funktionierte. Jetzt würde ich das nicht mehr machen: entweder Pro domäne ein eigenes Zertifikat (variante 1) oder ein Wildcard, wie Tjordan vorschlug.)

Vg, tobias

1 Like
#7

Hallo,

un der Vollständigkeit halber: Bei neueren ubuntu und debian Installationen kann man einfach das Paket “dehydrated” installieren. linuxmuster-dehydrated ist vor allem für den LMN6 Server gedacht. Selbstverständlich kann man mit letsencrypt subdomains bedienen.

Darüberhinaus gibt es noch acme.sh https://github.com/Neilpang/acme.sh, das wird bei Projekten der CT oft verwendet. Man muss also für so einfache Aufgabenstellungen keine viele MB große Certbot-Installation machen.

Auf einem meiner Server holt dehydrated Zertifikate für >40 verschiedene “sub”-Domains, das klappt ohne Probleme und ohne Wildcard.

Wildcard ist IMHO v.a. dann interessant, wen ich Zertifikate für Rechner benötige, die nicht von letsencrypt für die Challenge erreichbar sind, denn damit kann ich ein Zertifikat beziehen, das für alle meine Subdomainnamen gilt, das ich dann im Intranet verteile.

VG

FRank

#8

Hallo,

es ist halt kein LMN-Server sondern einfach ein Ubuntu 18.04-Server.

Dann kann ich dehydrated nicht nehmen, oder?

Und der Server muss für Let’s Encrypt auch auf Port 80 erreichbar sein, oder?

Vielehrer Grüße
Steffen

#9

Hallo Steffen,

klar kannst Du Dehydrated nehmen, nur halt vermutlich nicht das
Linuxmuster-Paket.

Für Dehydrated muss Port 80 nicht erreichbar sein, für Certbot schon. Es
kann aber auch eine permanente Weiterleitung auf Port 443 sein (das ist
meiner Meinung nach sowieso sinnvoller als Port 80 zu schließen).

Beste Grüße

Jörg