Einrichten von HTTPS unter apache

Diese Seite gibt eine Schritt-für-Schritt-Anleitung, um die easydb so einzurichten, dass sie über HTTPS erreichbar ist.

Um die easydb über HTTPS anzubieten, sollte zumindest der EAS lokal über HTTP zugänglich sein, um den Overhead durch die Verschlüsselung zu verhindern. Wir empfehlen, die Weiterleitung von HTTP auf HTTPS einzurichten (Schritt 2).

Schritt 1: Einen virtuellen Host für HTTP einrichten
Schritt 2: Weiterleitung von HTTP auf HTTPS (empfohlen)
Schritt 3: einen virtuellen Host für HTTPS einrichten
Schritt 4: Konfiguration der easydb anpassen
Schritt 5: Domains im Webserver aktivieren

Schritt 1: Einen virtuellen Host für HTTP einrichten

Erstellen Sie in /etc/apache2/sites-available/ eine Datei namens "easydb":

Include /etc/opt/easydb/eas/apache-easydb-asset-server.inc
Include /opt/easydb/4.0/conf/apache-fastcgi.inc

<VirtualHost localhost:80>
    ServerAdmin <ADMIN_EMAIL>
    ServerName localhost

    DocumentRoot /opt/easydb/4.0/docroot

    Include /opt/easydb/4.0/conf/apache-easydb.inc

    Use EasydbAssetServerExt /opt/easydb/eas "http" /var/opt/easydb/lib/eas/partitions /var/run/easydb/fcgi-socket
    Use EasydbAssetServerAllowedHost "127.0.0.1 ::1"

    SetEnv EASYDB_ROOT /opt/easydb/4.0/docroot
    SetEnv EASYDB_CONF %ENVIRONMENT%,/etc/opt/easydb/<INSTANCE>.conf
    SetEnv EASYDB_INSTANCE <INSTANCE>

</VirtualHost>

Falls Sie die easydb weiterhin über HTTP anbieten wollen, so ersetzen Sie die <VirtualHost localhost:80> durch <VirtualHost *:80>, und tragen unter ServerName die vollständige Domain ein. Bei EasydbAssetServerAllowedHost müssen Sie die IP-Addresse des externen Interfaces nachtragen.

Schritt 2: Weiterleitung von HTTP auf HTTPS (empfohlen)

Dieser vhost sorgt dafür, dass der EAS über die Loopback-Adresse unverschlüsselt erreichbar ist. Sie können noch folgendes in die Datei anhängen, um alle Browser automatisch auf die verschlüsselte Seite weiterzuleiten:

<VirtualHost *:80>
    ServerName <DOMAIN_NAME>
    RewriteEngine on
    RewriteRule ^/(.*) https://<DOMAIN_NAME>/$1 [R]
</VirtualHost>

Ersetzen Sie den Platzhalter <DOMAIN_NAME> mit der Domain, auf der Ihr Zertifikat ausgestellt wurde.

Schritt 3: einen virtuellen Host für HTTPS einrichten

Nun folgt der Vhost für HTTPS. Legen Sie den privaten Schlüssel, das SSL-Zertifikat und das Intermediate-Zertifikat unter /etc/ssl/private/ ab. Achten Sie darauf, dass der Schlüssel nur für www-data und nicht von allen lesbar ist! Legen Sie nun in /etc/apache2/sites-available/ eine Datei namens "easydb-ssl" mit folgendem Inhalt an:

<VirtualHost *:443>
    ServerName <DOMAIN_NAME>
    ServerAdmin <ADMIN_EMAIL>

    SSLEngine on
    SSLCertificateKeyFile       /etc/ssl/private/private.key
    SSLCertificateFile          /etc/ssl/private/domain.cert
    SSLCertificateChainFile     /etc/ssl/private/intermediate_CA.cert

    DocumentRoot                /opt/easydb/4.0/docroot

    Include                     /opt/easydb/4.0/conf/apache-easydb.inc

    Use EasydbAssetServerExt /opt/easydb/eas "https" /var/opt/easydb/lib/eas/partitions /var/run/easydb/fcgi-socket
    Use EasydbAssetServerAllowedHost "127.0.0.1 ::1"

    SetEnv EASYDB_ROOT          /opt/easydb/4.0/docroot
    SetEnv EASYDB_CONF          %ENVIRONMENT%,/etc/opt/easydb/<INSTANCE>.conf
    SetEnv EASYDB_INSTANCE      <INSTANCE>

</VirtualHost>

Schritt 4: Konfiguration der easydb anpassen

Ändern Sie die easydb-Konfig in /etc/opt/easydb/<INSTANCE>.conf so ab, dass statt der EAS_URL folgendes gesetzt ist:

EAS_INTERNAL_URL=http://localhost/eas
EAS_EXTERNAL_URL=/eas

Schritt 5: Domains im Webserver aktivieren

Aktivieren Sie die domains mit:

a2ensite easydb
a2ensite easydb-ssl

Anschließend können werden Sie aufgefordert, den Webserver neuzuladen:

apache2ctl graceful