Apache - Generiert einen privaten Schlüssel aus einer vorhandenen CRT-Datei

7

Ich habe einige Apache-Instanzen, die mit einem selbst erstellten generierten Zertifikat reibungslos funktionieren. Jetzt muss ich ein bereitgestelltes Zertifikat verwenden, aber was ich gesendet habe, ist nur eine CRT-Datei. Beim Versuch, es in das richtige Verzeichnis zu kopieren, wird beim Versuch, den Webserver neu zu starten, Folgendes protokolliert:

SSL Library Error: 185073780 error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch

Was ich für richtig halte, weil die .key-Datei die ist, die ich selbst erstellt habe. Gibt es eine Möglichkeit, die richtige .key-Datei aus der .crt-Datei zu generieren?

ludiegu
quelle
Das Zertifikat wird aus Ihrem öffentlichen Schlüssel erstellt. Der öffentliche und der private Schlüssel sind (per Definition) vollständig getrennt und Sie können keinen voneinander generieren. Wie wurde diese neue CRT-Datei generiert? Es nur hat eine Schlüsseldatei und ein CSR irgendwo sein!
Alexios
1
Möglicherweise ist der Schlüssel in der Datei enthalten. Was ist die erste Zeile der Datei? (Nicht die Daten, nur die erste Textzeile, die hoffentlich einen Hinweis darauf geben sollte, um welche Art von Datei es sich handelt.)
Jenny D
@Alexios: Ich habe keine Ahnung, wie diese Datei generiert wurde :( @JennyD: Wenn ich eine einfache mache, catsehe ich Folgendes: -----BEGIN CERTIFICATE----- MIIFCTCCA/Ich glaube nicht, worauf Sie sich beziehen.
Ludiegu
Das Thema macht keinen Sinn, auch wenn der private Schlüssel mit dem CRT verknüpft ist.

Antworten:

7

Für Ihr selbstsigniertes Zertifikat haben Sie wahrscheinlich Folgendes getan:

$ openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
       -keyout mysitename.key -out mysitename.crt

Und dann erstellte ich Zeilen wie diese für Apache:

<VirtualHost 192.168.0.1:443>
DocumentRoot /var/www/website
ServerName www.domain.com
SSLEngine on
SSLCertificateFile /etc/ssl/crt/primary.crt
SSLCertificateKeyFile /etc/ssl/crt/private.key
SSLCertificateChainFile /etc/ssl/crt/intermediate.crt
</VirtualHost> 

Mit einem CA-signierten Zertifikat ändern sich die Dinge geringfügig. Sie müssen private.keydie Datei verwenden, mit der das CA-Zertifikat signiert wurde, und nicht die Datei, mit der Sie das selbstsignierende Zertifikat erstellt haben.

In einigen Fällen können Sie den Schlüssel aus der Datei exportieren, die Sie erhalten haben, aber wir müssen mehr Informationen über die tatsächliche Zertifikatdatei wissen, die Sie erhalten haben.

Beispiel

Ich habe mich mit .p12-Dateien befasst, bei denen ich die .key-Datei daraus extrahieren musste.

$ openssl pkcs12 -in star_qmetricstech_com.p12 -out star_qmetricstech_com.key 

Bei SSL-Zertifikaten gibt es jedoch viele Arten von Containerdateien. Daher müssen Sie besonders auf die verschiedenen Dateien achten und darauf, welche zusammen verwendet wurden.

Verweise

slm
quelle