Subdomain für den Blog

Der Blog, den du gerade liest, liegt in meinem uberspace in einem Verzeichnis unterhalb von html, nämlich html/blog. Allerdings ist er über den URL blog.pvitt.de erreichbar. Damit die Anfragen an diese Adresse auch dort ankommen, wo der Blog tatsächlich liegt, ist ein bisschen Konfigurationsarbeit nötig.

Zuerst musste ich die Subdomain dem uberspace hinzufügen. Das hatte ich ja schon mit der eigentlichen Domain gemacht, daher sollte das kein Neuland sein. Dazu ruft man uberspace-add-domain -d blog.pvitt.de -w auf. Nun ist die Domain in der uberspace-Konfiguration registriert. Außerdem fallen aus dem Script wieder die Angaben für die Namensauflösung heraus. Diese habe ich daher im Anschluss auf der Webseite des Registrars, der die verwendete Domain betreut, eingetragen. Nach einiger Zeit sollte sich der Eintrag herumgesprochen haben, sodass man nun zumindest eine Fehlermeldung des eigenen Apaches bekommen sollte. Denn dieser weiß noch nichts mit der Anfrage anzufangen. Das gilt es daher nun zu ändern.

Damit der Webserver weiß, was er auf die Anfrage nach blog.pvitt.de antworten soll, müssen wir ihm dies in der Datei .htaccess mitteilen:

RewriteBase /
RewriteCond %{HTTP_HOST} ^blog\.pvitt\.de$ [NC]
RewriteCond %{REQUEST_URI} !^/blog(/|$) [NC]
RewriteRule ^(.*)$ blog/$1 [L]

Diese Zeilen bewirken, dass Anfragen nach blog.pvitt.de auf das Verzeichnis pvitt.de/blog umgeleitet werden, dies aber für den Benutzer nicht sichtbar ist. Dieser sieht in seiner Adressleiste weiterhin blog.pvitt.de. So soll es sein.

Bereits gestern habe ich ein SSL-Zertifikat für alle vorhandenen Domains erstellt. Dieses Zertifikat umfasst nun allerdings die neue Subdomain noch nicht. Daher muss ich auch noch ein neues SSL-Zertifikat erstellen. Dazu verschiebe ich zuerst meine alte Konfiguration:

mv /home/pvitt/.config/letsencrypt/cli.ini /home/pvitt/.config/letsencrypt/cli.ini.old

...um dann eine neue zu erstellen:

uberspace-letsencrypt

Nun erneut Let's Encrypt aufrufen:

letsencrypt certonly

...und das neue Zertifikat mit der Subdomain sollte erstellt werden. Dieses nun noch importieren:

uberspace-add-certificate -k ~/.config/letsencrypt/live/pvitt.de/privkey.pem -c ~/.config/letsencrypt/live/pvitt.de/cert.pem

...und die neue Subdomain ist einsatzbereit. Nun sollte man allerdings noch etwas aufräumen, denn das alte Zertifikat, welches die Subdomain nicht beinhaltete, ist ja auch noch da. Daher lassen wir uns erst die Liste der vorhandenen Zertifikate anzeigen, suchen dort den Namen des zu löschenden Zertifikats und entfernen dieses:

uberspace-list-certificates
..
uberspace-del-certificate -c pvitt.de