Installation von Apache2 und mod_php4
Zuerst müsst ihr folgendes in die Konsole eingeben:
cd /usr/ports/www/mod_php4 make -DWITH_APACHE2 install clean
Das wird dann einige Minuten dauern, danach sollte aber Apache2 inklusive mod_php4
installiert sein. Nun müsst ihr nur noch php4 als Programmiersprache installieren:
cd /usr/ports/lang/php4 make install clean
Damit hab ihr dann alls nötige installiert.
Konfiguration des Apache2
Nun müsst ihr nur noch die httpd.conf etwas bearbeiten:
cd /usr/local/etc/apache2 vi httpd.conf
Ihr müsst folgende Zeilen kommentieren (ein „#“ davor setzen)
#LoadModule file_cashe_module libexec/apache2/mod_file_cache.so #LoadModule cache_module libexec/apache2/mod_cache.so #LoadModule disk_cache_module libexec/apache2/mod_disk_cache.so
Danach fügt ihr zu <DirectoryIndex> index.php hinzu:
DirectoryIndex index.php index.htm index.html index.html.var
Folgende Zeilen müssen auch in der httpd.conf enthalten sein:
AddType php4_module libexec/apache2/libphp4.so AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps
Zu guter letzt speichert ihr die httpd.conf
Wichtig ist dass ihr jetzt noch die index.html.var sichert.
cd /usr/local/www/data cp index.html.var index.html.var.back
Nun könnt ihr den httpd starten.
/usr/local/sbin/apachectl start
SSL
Wenn ihr den Webserver jetzt mit einem Browser erreichen könnt, dann könnt ihr euch jetzt an die SSL-Unterstützung machen.
SSL Zertifikate erstellen
Um die Zertifikate zu erstellen, müsst ihr OpenSSL bereits funktionsfähig installiert haben. Geht nun in das Konfigurationsverzeichnis von Apache2 und erstellt dort folgende 2 Unterverzeichnisse:
cd /usr/local/etc/apache2/ mkdir ssl.key mkdir ssl.crt
Nun erstellt ihr die Schlüssel.
openssl genrsa -des3 -out server.key 1024
Damit Apache2 diesen Schlüssel auch lesen kann, müsst ihr ihn noch konvertieren.
openssl rsa -in server.key -out server.key.unsecure
Bei der Erstellung der Signierungsanfrage werden euch ein paar Fragen gestellt, die ihr möglichst wahrheitsgemäß ausfüllen solltet. Achtet hier besonders auf die Frage nach „Common Name“! Hier gilt es die Domain einzutragen, unter der der HTTPS-Server später zu erreichen sein soll. Bei mir ist das „www.redbrick.de“. Wenn ihr hier etwas falsches angebt, dann spuckt der Browser später eine lästige Warnung aus.
openssl req -new -key server.key -out server.csr
Nun signiert ihr euch euren Key selber.
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Als nächstes bindet ihr das Zertifikat folgendermaßen in den HTTPd ein:
cp server.key.unsecure /usr/local/etc/apache2/ssl.key/server.key cp server.crt /usr/local/etc/apache2/ssl.crt/server.crt
Letzter Check
Bevor ihr nun euren Apache2 startet, solltet ihr die entsprechende Konfigurationsdatei nochmal genau durchgehen. Im Normalfall sollte die ssl.conf in /usr/local/etc/apache2/ in Ordnung sein, so wie sie ist. Aber Vorsicht ist ja bekanntlich die Mutter der Porzelankiste! Also sucht in der ssl.conf nach folgenden Einträgen: SSLCertificateFile und SSLCertificateKeyFile. An dieser Stelle müsst ihr die Files angeben, die ihr gerade erstellt habt. Muss also wie folgt aussehen:
SSLCertificateFile /usr/local/etc/apache2/ssl.crt/server.crt SSLCertificateKeyFile /usr/local/etc/apache2/ssl.key/server.key
Webserver starten
Zu guter letzt speichert ihr nun die ssl.conf und startet den Server inklusive SSL.
apachectl startssl
Wenn ihr euch nirgendwo vertippt habt und ich nichts vergessen habe, dann solltet ihr über die Adresse https://localhost/ oder von einem anderen Rechner aus entprechend die über IP-Adresse bzw. die Domain anstatt „localhost“ die in /usr/local/www/ssl befindlichen Dateien verschlüsselt mit einem Browser zugreifen können. Den Pfad für die Dateien könnt ihr natürlich auch ändern, zum Beispiel zu eurem DocumentRoot, was entweder /usr/local/www/htdocs oder /usr/local/www/data sein sollte.