Generieren Sie ein selbstsigniertes SSL-Zertifikat für Apache

10

Ich möchte ein selbstsigniertes Zertifikat für die Website erstellen. Das alte Zertifikat ist vor einigen Tagen abgelaufen. Es gibt mehr als einen NameVirtualHosts, der auf Systemen gehostet wird. Die Befehle, mit denen ich ein Zertifikat erstelle, stammen von einer Tutorial-Website und sind:

openssl genrsa -des3 -out server.key 1024
openssl req -new -key server.key -out server.csr 
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Danach habe ich in der Datei ssl.conf im Abschnitt VirtualHost zusammen mit den alten Einstellungen, die von anderen Administratoren vorgenommen wurden, angegeben

SSLEngine on
SSLCertificateFile <full_path>/server.crt
SSLCertificateKeyFile <full_path>/server.key

Beim Starten des Servers werden folgende Meldungen in der Protokolldatei angezeigt, und der Server kann nicht gestartet werden.

In der error_log-Datei befinden sich Meldungen

 [Mon Jun 01 23:52:46 2009] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)

In der Datei ssl_error_log sind Nachrichten

 [Mon Jun 01 23:52:46 2009] [error] Init: Private key not found
 [Mon Jun 01 23:52:46 2009] [error] SSL Library Error: 218710120 error:0D094068:asn1 encoding routines:d2i_ASN1_SET:bad tag
 [Mon Jun 01 23:52:46 2009] [error] SSL Library Error: 218529960 error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
 [Mon Jun 01 23:52:46 2009] [error] SSL Library Error: 218595386 error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error
 [Mon Jun 01 23:52:46 2009] [error] SSL Library Error: 218734605 error:0D09A00D:asn1 encoding routines:d2i_PrivateKey:ASN1 lib

Ich würde mich sehr freuen, wenn jemand erklären kann, wie man das löst. Ich habe einige andere Tutorial-Websites mit selbstsignierten SSL-Zertifikaten ausprobiert, aber keiner der genannten Schritte funktioniert.

Saurabh Barjatiya
quelle

Antworten:

21

Verwenden Sie diesen einen Liner, um das Zertifikat und den Schlüssel in einer Datei zu generieren

openssl req -new -x509 -days 999 -nodes -out apache.pem -keyout apache.pem

Dann brauchen Sie nur noch die Konfiguration

SSLEngine on
SSLCertificateFile /etc/apache2/apache.pem
Hayalci
quelle
Sie meinen, fügen Sie oben Zeile sslengine auf und sslcertificatefile / etc / ssh
Rajat
Dies ist für die Apache-Konfiguration, nicht für SSH.
Hayalci
1
Dieser Befehl lässt den privaten Schlüssel im Gegensatz zum ursprünglichen Befehl des OP im Dateisystem frei. Wenn Sie die -nodesOption weglassen, wird der Schlüssel mit Triple-DES verschlüsselt. (Die Passphrase des Schlüssels muss natürlich bei jedem Start des Servers angegeben werden.) Der OpenSSL- reqBefehl unterstützt nicht das Generieren stärker verschlüsselter Schlüssel, kann jedoch zuvor generierte stark verschlüsselte Schlüssel verwenden.
Calrion
4

Dies mag etwas trivial erscheinen, aber überprüfen Sie die Berechtigung in Ihrer .key-Datei

Jeff Hengesbach
quelle
+1 Manchmal wird an die trivialen Dinge am wenigsten gedacht.
Burkhard
0

Sie können openssl req -newkey rsa:1024 -keyout privkey.pemden SSL-Schlüssel beim Generieren speichern, falls die Schlüsselgenerierung nicht ganz richtig ist.

davenpcj
quelle