Der MacOS-X-Eigene Apache-Webserver ist zwar mit einem schnellen Klick in den Sharing-Systemeinstellungen aktiviert, bietet aber nur http.

Um auch via https-Protokoll Websites anbieten zu können, sind ein paar Handgriffe mehr notwendig.

Zuerst muss ein Zertifikat erstellt werden.

Das private und öffentliche Zertifikat habe ich bei mir in einem Ordner "cert" innerhalb des Apache-Verzeichnisses abgelegt.

cd /private/etc/apache2/

sudo mkdir cert

cd cert

sudo openssl req -keyout privkey-$(date +%Y-%m).pem -newkey rsa:2048 -nodes -x509 -days 365 -out cert-$(date +%Y-%m).pem

Erstellt im Verzeichnis

/private/etc/apache2/cert
ein öffentliches Zertifikat
cert-2013-11.pem
und ein privates Zertifikat
privkey-2013-11.pem
wobei Jahres- und Monats-Zahl dem aktuellen Jahr und Monat entsprechen, in denen diese Zertifikate erstellt wurden.

Dies ist sinnvoll, da das Zertifikat nur ein Jahr gültig ist (
-days 365
).

Beim Erstellen werden einige gefragt. Hier Beispielsangaben von mir:

Country Name (2 letter code) [AU]:DE
State or Province Name (full name) [Some-State]:Musterdorf
Locality Name (eg, city) []:Musterdorf
Organization Name (eg, company) [Internet Widgits Pty Ltd]:apfelz
Organizational Unit Name (eg, section) []:blog
Common Name (eg, YOUR name) []:blog.apfel-z.de
Email Address []:webmaster@apfel-z.de
 

Nun noch die Rechte der erstellten Zertifikate anpassen.

Bitte das
2013-11
im Folgenden durch das korrekte Jahr und Monat ersetzen, damit die
.pem
-Dateinamen der bei euch erstellten entsprechen.

sudo chmod 600 privkey-2013-11.pem

sudo chown root privkey-2013-11.pem

Nun die Apache-Konfiguration anpassen, so dass SSL aktiviert wird:

sudo pico /etc/apache2/httpd.conf

Folgende Zeilen müssen aktiv sein.

Bitte das # entfernen, falls vorangestellt.

Mit dem Texteditor

pico
können diese Zeilen mit Hilfe des Befehles ctrl-w (Where is?) gesucht werden:

LoadModule ssl_module libexec/apache2/mod_ssl.so
Include /private/etc/apache2/extra/httpd-ssl.conf

Und nun zur Apache-SSL-Konfiguration:

sudo pico /etc/apache2/extra/httpd-ssl.conf

Unter

# General setup for the virtual host
sollten folgende Zeilen stehen und euren Angaben entsprechen.

Ich habe außerdem neben dem
/Library/WebServer/Documents/
-Ordner noch einen weiteren Ordner
SSL-Documents
erstellt, in dem die Skripte liegen, die beim https-Zugriff verarbeitet werden sollen.

DocumentRoot “/Library/WebServer/SSL-Documents/
ServerName http://blog.apfel-z.de:443
ServerAdmin webmaster@apfel-z.de
SSLCertificateFile /etc/apache2/cert/cert-2013-11.pem
SSLCertificateKeyFile /etc/apache2/cert/privkey-2013-11.pem

Zum Schluss den Apache-Webdienst neu starten (Haken unter Systemeinstellungen > Freigaben entfernen und wieder setzen) und schon sollte euer Server via https erreichbar sein.