MAMP: Lokal mit SSL-Zertifikaten / https arbeiten

Nun habe ich in der Vergangenheit ja schon einige Beiträge über die lokale Entwicklungsumgebung geschrieben – insbesondere mit MAMP. Ein wichtiges Thema fehlt allerdings noch: SSL / HTTPS lokal nutzen.

Als erstes muss man dazu ein Key-File erstellen.

openssl genrsa -des3 -out server.key 1024

Wenn man nach einem Passwort gefragt wird, muss man dieses hier vergeben. Die Mindestlänge beträgt 4 Zeichen. In meinem Fall habe ich einfach einmal 1234 gewählt. Das kann man sich wenigstens gut merken – ist ja nur für die lokalen Verbindungen und somit unkritisch.

Bei der Erstellung des Zertifikates muss man dieses Passwort dann direkt wieder eingeben. Außerdem muss man ein paar Fragen beantworten.

openssl req -new -key server.key -out server.csr

Hier meine Beispielantworten:

You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:DE
State or Province Name (full name) [Some-State]:NRW   
Locality Name (eg, city) []:Paderborn
Organization Name (eg, company) [Internet Widgits Pty Ltd]:mkleine.de
Organizational Unit Name (eg, section) []:dev
Common Name (e.g. server FQDN or YOUR name) []:Matthias Kleine
Email Address []:dev@mkleine.de

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:1234
An optional company name []:

Als nächstes erstellen wir das eigentliche Zertifikat:

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Mit einem Trick entfernen wir das Passwort vom Server-Key:

cp server.key server.tmp
openssl rsa -in server.tmp -out server.key

So weit, so gut. Nun etwas aufräumen, und die Dateien in das MAMP-Verzeichnis schieben (geht natürlich auch per Finder):

mkdir /Applications/MAMP/conf/ssl
mv server.* /Applications/MAMP/conf/ssl/

Als nächstes müssen wir MAMP beibringen, dass wir dieses Zertifikat nutzen möchten.

Ich für meinen Teil, habe bereits eine vhosts.conf im apache-Verzeichnis angelegt. Diese enthält Domains für die lokale Entwicklung (local.dev, magento.localhost, …), da man unter localhost sonst keine Cookies ablegen kann.

Diese Datei enthielt bisher folgenden Inhalt:

NameVirtualHost *:80

<VirtualHost *:80>
    DocumentRoot "/Volumes/DEV/sites"
    ServerName local.dev
    <Directory "/Volumes/DEV/sites">
       Options All
       AllowOverride All
       Order allow,deny
       Allow from all
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/Volumes/DEV/magento"
    ServerName localhost.magento
    <Directory "/Volumes/DEV/magento">
       Options All
       AllowOverride All
       Order allow,deny
       Allow from all
    </Directory>
</VirtualHost>

Die Datei liegt im Verzeichnis /Applications/MAMP/conf/apache/ und wurde mit folgendem Befehl in der httpd.conf eingebunden:

Include /Applications/MAMP/conf/apache/vhosts.conf

Um das Ganze nun mit SSL auszustatten, fügen wir folgendes hinzu:

Listen 443

AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl    .crl

SSLPassPhraseDialog  builtin
SSLSessionCache "shmcb:/Applications/MAMP/Library/logs/ssl_scache(512000)"
SSLSessionCacheTimeout 300

SSLMutex  "file:/Applications/MAMP/Library/logs/ssl_mutex"

NameVirtualHost *:80
NameVirtualHost *:443

<VirtualHost *:443>
        SSLEngine on
        SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
        SSLCertificateFile /Applications/MAMP/conf/ssl/server.crt
        SSLCertificateKeyFile /Applications/MAMP/conf/ssl/server.key
        
        DocumentRoot "/Volumes/DEV/sites"
        ServerName local.dev
</VirtualHost>

Den Apache neu starten und fertig ist alles. Nach einem Aufruf von https://local.dev/ sag mir mein Browser auch brav, dass das Zertifikat nicht sicher sei. Und ich bin der Aussteller. Alles läuft also super. Viel Erfolg!

MAMP Zerfifikat


Beitrag veröffentlicht

in

, , ,

von

Schlagwörter: