m.o.o.
26.07.09, 23:11
Hallo,
ich experimentiere gerade mit Apache 2.2.11, genauer gesagt mit HTTPS.
Für diesen Zeck wollte ich mir selbst ein Zertifikat ausstellen um die verschlüsselte Kommunikation zu testen.
Ich habe mir also zuerst einen Private-Key generiert
openssl genrsa -out server.pem
und dann die CSR erstellt mit
openssl req -new -key server.pem -out server.csr
Anschließend muss die CSR unterschrieben werden, deshalb spiele ich CA und erstelle mir einen neuen Private-Key mit
openssl genrsa -out ca_key.pem
und erzeuge das signierte X.509-Zertifikat mit
openssl x509 -req -days 60 -in server.csr -signkey ca_key.pem -out server.crt
Die erzeugten Dateien binde ich so in Apache ein:
SSLCertificateFile /etc/apache/conf/server.crt
SSLCertificateKeyFile /etc/apache/conf/server.pem
Dann versuche ich den Server mit apachectl zu starten, was mit einem
[Sun Jul 26 23:53:33 2009] [error] SSL Library Error: 185073780 error:0B080074:x509 certificate routines:
X509_check_private_key:key values mismatch
quittiert wird. Setze ich bei der Option "SSLCertificateKeyFile" die Datei "ca_key.pem" ein, dann startet der Server und die verschlüsselte Kommunikation funktioniert.
Warum ist das so? Wenn ich mein CSR-Dokument an die CA zum Signieren sende, dann unterschreibt die das ja mit ihrem privaten Schlüssel, d.h. der steht mir nicht zur Verfügung und ich kann ihn dann nicht wie oben in meine Konfiguration einbinden. Oder liefert die CA zusätzlich zum Zertifikat auch einen (neuen) privaten Schlüssel für mich mit? Falls das so ist: für was brauche ich dann noch den Schlüssel "server.pem"? Dient dieser nur zur sicheren Übertragung (bzw. zur Gewährleistung der Authentizität bei der Übertragung) des CSR-Dokuments an die CA?
Gruß, Florian
ich experimentiere gerade mit Apache 2.2.11, genauer gesagt mit HTTPS.
Für diesen Zeck wollte ich mir selbst ein Zertifikat ausstellen um die verschlüsselte Kommunikation zu testen.
Ich habe mir also zuerst einen Private-Key generiert
openssl genrsa -out server.pem
und dann die CSR erstellt mit
openssl req -new -key server.pem -out server.csr
Anschließend muss die CSR unterschrieben werden, deshalb spiele ich CA und erstelle mir einen neuen Private-Key mit
openssl genrsa -out ca_key.pem
und erzeuge das signierte X.509-Zertifikat mit
openssl x509 -req -days 60 -in server.csr -signkey ca_key.pem -out server.crt
Die erzeugten Dateien binde ich so in Apache ein:
SSLCertificateFile /etc/apache/conf/server.crt
SSLCertificateKeyFile /etc/apache/conf/server.pem
Dann versuche ich den Server mit apachectl zu starten, was mit einem
[Sun Jul 26 23:53:33 2009] [error] SSL Library Error: 185073780 error:0B080074:x509 certificate routines:
X509_check_private_key:key values mismatch
quittiert wird. Setze ich bei der Option "SSLCertificateKeyFile" die Datei "ca_key.pem" ein, dann startet der Server und die verschlüsselte Kommunikation funktioniert.
Warum ist das so? Wenn ich mein CSR-Dokument an die CA zum Signieren sende, dann unterschreibt die das ja mit ihrem privaten Schlüssel, d.h. der steht mir nicht zur Verfügung und ich kann ihn dann nicht wie oben in meine Konfiguration einbinden. Oder liefert die CA zusätzlich zum Zertifikat auch einen (neuen) privaten Schlüssel für mich mit? Falls das so ist: für was brauche ich dann noch den Schlüssel "server.pem"? Dient dieser nur zur sicheren Übertragung (bzw. zur Gewährleistung der Authentizität bei der Übertragung) des CSR-Dokuments an die CA?
Gruß, Florian