Subdomain via SSL erreichen

Aus Synology Wiki
Wechseln zu: Navigation, Suche

Subdomains via SSL erreichen

Genauso wie es der Titel verspricht geht es zwar nicht. Denn das SSL Protokoll kann nicht auf virtuellen Hosts umgesetzt werden, sondern nur auf dem Haupthost. Ich habe mir auf der DS einen virtuellen Host für mein Webmail eingerichtet. Da ich das Webmail nur via https erreichen will, musste ich eine Lösung finden die Subdomain via SSL erreichen zu können.

Der einfache Weg ist es einfach die Subdomain zum Hauptserver zu machen und die alte Haupdomain zum 2. virtuellen Host. Dazu muss man in der Datei /usr/syno/apache/conf/httpd.conf-user die Variablen

ServerName
DocumentRoot

anpassen.
Unter ServerName würdet ihr dann subdomain.account.dyndns.tld:80 eintragen. Bei DocumentRoot solltet ihr sicherstellen, dass er auf /volume1/web/ zeigt.

Dann noch ebenfalls in der httpd-user.conf noch das vhosts File einbinden

Include conf/extra/httpd-vhosts.conf

Man könnte zwar auch den DocumentRoot auf das Verzeichnis der Subdomain umschreiben. Ich habe bei mir jedoch den Inhalt der Subdomain in den Hauptordner des Webservers kopiert und den Inhalt des Haupthosts in ein Unterverzeichnis verschoben.

Jetzt müsst ihr noch die Einträge in /usr/syno/apache/conf/extra/vhosts.conf anpassen. Der erste VirtualHost muss jetzt natürlich die Werte der globalen Variabeln (ServerName und DocumentRoot) erhalten. Der zweite virtual Host wird dann auf das Unterverzeichnis des alten Haupthosts umgeschrieben. Unter ServerName würde ich für den 2. Host account.dyndns.tld setzen.

#httpd-vhosts.conf
NameVirtualHost *:80
<VirtualHost *:80>
 ServerName webmail.mydomain.tld
 ServerAlias list.myother_domain.tld webmail.localnet mail.mydomain.tld mail.localnet
 DocumentRoot /volume1/web
</VirtualHost>

<VirtualHost *:80>
 ServerName mydomain.tld
 ServerAlias *.mydomain.tld
 DocumentRoot /volume1/www/main
</VirtualHost>

Beim 2. VirtualHost ist es wichtig, dass ihr den ServerName auf den Domainnamen und einen ServerAlias einrichtet, der alle Hosts für die Domain aktzeptiert (*.domain). Dieser catch-all ist sehr wichtig, denn wenn der Apache für einen Request - der bei ihm landet - den angefragten Hostnamen weder in ServerName noch in ServerAlias findet, dann zeigt er per default den Inhalt des Haupthostes an. Ihr würdet also bei Eingabe der LAN Adresse der DS den Inhalt der Subdomain webmail sehen.

Ausserdem macht es Sinn für die vhosts ein eigenes Verzeichnis für die DocumentRoots (hier /volume1/www) anzulegen. Andernfalls wäre es möglich den Inhalt einer Subdomain nicht nur unter webmail.mydomain.tld, sondern auch über mydomain.tld/webmail zu erreichen