Wie erstelle ich auf einfache Weise ein SSL-Zertifikat und konfiguriere es in Apache2 unter Mac OS X?

34

Ich möchte meinen Mac OS X mit https für lokale Entwicklungstests verwenden. Wie kann ich Apache2 einfach dazu bringen, auf ssl zu antworten, nur für Testzwecke? Ich möchte kein echtes Zertifikat, nur eine Fälschung, damit lokales https funktioniert

Daniel Cukier
quelle

Antworten:

58

Für lokale Entwicklungstests ist ein selbstsigniertes Zertifikat ausreichend. Sie können eine mit dem OpenSSL-Kit wie folgt erstellen :

Generieren des privaten Schlüssels:

openssl genrsa -des3 -out server.key 1024

Ausgabe:

Generierung eines privaten RSA-Schlüssels mit einem Modul von 1024 Bit
.................................................. ....... ++++++
........ ++++++
e ist 65537 (0x10001)
Geben Sie die PEM-Passphrase ein:
Passwort bestätigen - PEM-Passwort eingeben:

Geben Sie eine Passphrase für Ihren privaten Schlüssel ein.

Generieren der CSR (Certificate Signing Request):

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

es wird Details wie diese anfordern:

Ländername (2-Buchstaben-Code) [GB]:
Name des Bundesstaates oder der Provinz (vollständiger Name) [Berkshire]:
Ortsname (z. B. Stadt) [Newbury]:
Name der Organisation (z. B. Firma) [My Company Ltd]:
Name der Organisationseinheit (z. B. Abschnitt) []:
Allgemeiner Name (z. B. Ihr Name oder der Hostname Ihres Servers) []:
E-Mail-Addresse []:
Bitte geben Sie die folgenden zusätzlichen Attribute ein
mit Ihrer Zertifikatsanfrage zu senden
Ein Challenge-Passwort []:
Ein optionaler Firmenname []:

Der allgemeine Name ist der Hostname Ihres Servers, wie in Klammern angegeben.

Generieren des selbstsignierten Zertifikats:

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

SSL in httpd.conf für Apache konfigurieren:

SSLEngine ein
SSLCertificateFile /path/to/generated/server.crt
SSLCertificateKeyFile /path/to/generated/server.key

(Ersetzen Sie den Pfad entsprechend durch den Pfad zu Ihrem Zertifikat und Schlüssel.)

Starten Sie Apache neu :

apachectl restart

Apache fragt Sie nach der Passphrase für Ihren Schlüssel. Wenn Sie glauben, dass der Server häufig heruntergefahren wird, möchten Sie möglicherweise die Passphrase vom Schlüssel entfernen, damit Sie sie nicht jedes Mal eingeben müssen. Wenn nicht, mach dir keine Sorgen. Wenn ja, führen Sie diesen Schritt nach Schritt 2 ( Generieren der CSR ) aus:

cp server.key server.key.copy
openssl rsa -in server.key.copy -out server.key
John T
quelle
Es ist fast beunruhigend für mich. Wenn ich versuche, auf eine Seite in meinen Rails zuzugreifen, ist die Seite über http vorhanden, aber wenn ich https verwende, wird die Seite nicht gefunden. Wissen Sie, was sein könnte?
Daniel Cukier
Haben Sie Ihren virtuellen Host so geändert, dass er https auf Port 443 verwendet? Es sollte so aussehen: <VirtualHost 192.168.1.100:443> SSLEngine On, etc .... </ VirtualHost>
John T
Vielen Dank dafür, ich habe ein SSL-Zertifikat erhalten, das mit Lion einwandfrei funktioniert. Ich dachte nur, ich würde ein paar Punkte hinzufügen, die dir das Leben erleichtern sollen. Apples Apache hat eine httpd-ssl.conf, die bereits so konfiguriert ist, dass sie in / private / etc / apache2 nachschaut. Außerdem müssen Sie httpd.conf bearbeiten, da die Zeile, die httpd-ssl.conf enthält, standardmäßig auskommentiert ist. Schließlich sind 365 Tage etwas zu kurz. Vielleicht möchten Sie ein längeres Ablaufdatum festlegen, oder Sie tun es nächstes Jahr erneut (ich habe 3650 verwendet)
GordonM
Wenn jemand Probleme wurden mit wie ich haben, werden Sie froh sein , diesen Link zu finden, die erklärt , wie die Virtualhost mit virtualhostx einzurichten richtig an die Arbeit mit ssl yellowrobot.heroku.com/blog/2012/01/22/...
Relequestual
Wenn es Ihr Entwicklercomputer ist, möchten Sie wahrscheinlich einen privaten Schlüssel ohne Kennwort haben: openssl rsa -in server.key -out server.nopass.key
Aldekein