Apaches veraltete SSLCertificateChainFile-Direktive (AH02559)

8

Kürzlich habe ich Apache von 2.2 auf 2.4 aktualisiert und kann nicht herausfinden, wie eine SSLCertificateChainFileDirektive verworfen werden kann.

Der Fehler:

me@jessie:~$ sudo apache2ctl configtest 
AH02559: The SSLCertificateChainFile directive (/etc/apache2/sites-enabled/https.conf:103) is deprecated, SSLCertificateFile should be used instead
Syntax OK

Meine aktuellen Einstellungen:

SSLCertificateFile    /etc/apache2/cert/ssl.crt
SSLCertificateKeyFile /etc/apache2/cert/ssl.key
SSLCertificateChainFile /etc/apache2/cert/sub.class1.server.sha2.ca.pem
SSLCACertificateFile /etc/apache2/cert/ca.pem

Das Zertifikat ist von StartCOM signiert. Das Handbuch sagt, jetzt sollte sich die gesamte Kette in einer Datei befinden, die in der SSLCertificateFileDirektive angegeben ist, aber ich weiß nicht, welche Schlüssel und in welcher Reihenfolge ich mit dieser Datei verketten soll.

Neurotransmitter
quelle

Antworten:

8

Vorausgesetzt, Sie verwenden dies in Ihrer Apache-Konfiguration:

SSLCertificateFile    /etc/apache2/cert/ssl.crt
SSLCertificateKeyFile /etc/apache2/cert/ssl.key

Die /etc/apache2/cert/ssl.crtDatei sollte enthalten

  1. Zertifikat von zB yourdomain.com
  2. Zertifikat der ersten Zwischenzertifizierungsstelle, signiert von der Stammzertifizierungsstelle (z. B. StartCom Class 1 Primary Intermediate Server CA)
  3. Zertifikat der zweiten Zwischenzertifizierungsstelle, signiert von der ersten Zwischenzertifizierungsstelle (wenn sich in Ihrer Zertifikatskette eine zweite Zwischenzertifizierungsstelle befindet)

Sie müssen alle Zertifikate der Zwischenzertifizierungsstelle in die CRT-Datei einfügen. Abhängig von der Zertifikatkette Ihres Zertifikats wird eine unterschiedliche Anzahl von Zertifizierungsstellen verwendet.

Sie müssen nicht einmal die Stammzertifizierungsstelle hinzufügen, da sie sich im Trust Store eines Clients befinden muss. Andernfalls erhalten Clients eine Fehlerseite. Wenn Sie sie Ihrer Kette hinzufügen, ist dies nur ein zusätzlicher Aufwand Herstellen von SSL-Verbindungen, da diese für jede neue SSL-Sitzung übertragen werden müssen. Tatsächlich haben die meisten Clients auch CA-Zwischenzertifikate installiert, einige jedoch möglicherweise nicht, z. B. haben Mobiltelefone nicht viele CA-Zwischenzertifikate, daher würde ich diese definitiv hinzufügen.

Die /etc/apache2/cert/ssl.keyDatei bleibt unverändert, dh sie enthält den Schlüssel für das Zertifikat von yourdomain.com

fholzer
quelle
Okay, wenn ich Sie richtig verstanden habe, sollte ich eine Datei mit der folgenden Reihenfolge erstellen: 1) ssl.crt; 2) sub.class1.server.sha2.ca.pem; 3) was? Bitte erläutern Sie, welche Zertifikate an dritter (und möglicherweise weiterer) Stelle hinzugefügt werden sollten.
Neurotransmitter
Das hängt von der tatsächlichen Kette ab. Ich meine die Anzahl der Zertifizierungsstellen, die an der Signatur Ihres Zertifikats beteiligt sind. Die Kette darf nur aus 2 CAs bestehen. zB Root-CA und eine Zwischen-CA. Es kann jedoch aus einer Stammzertifizierungsstelle und mehr als einer Zwischenzertifizierungsstelle bestehen. Ihre Datei ssl.crt sollte alle CA-Zwischenzertifikate von oben nach unten enthalten. Aus diesem Grund hängt es absolut von Ihrem speziellen Fall ab, wie Ihre ssl.crt aussehen soll.
Fholzer
Wie kann man wissen, welche Zertifizierungsstellen an der Unterzeichnung eines Zertifikats beteiligt sind?
Neurotransmitter
2
Der Aufbau der Kette ist für einen Anfänger nicht trivial, denke ich. Normalerweise renne openssl x509 -subject -issuer -noout -in certificate.of.yourdomain.crtich zum Emittenten. Anschließend lade ich das ausstellende Zertifikat von der Website meiner Zertifizierungsstelle herunter, in Ihrem Fall: startssl.com/certs . Führen Sie dann den Befehl für dieses Zertifikat aus. Wiederholen Sie diesen Vorgang, bis das Problem dem Betreff entspricht. Dies bedeutet, dass das Zertifikat selbstsigniert ist und das Zertifikat der Stammzertifizierungsstelle ist. Fügen Sie alle diese Dateien mit Ausnahme des Stammzertifizierungsstellenzertifikats zur Datei ssl.crt hinzu, und fertig.
Fholzer
Vielen Dank für die Unterstützung, ich bin der Kette gefolgt und habe ein kombiniertes Zertifikat erstellt. Aus irgendeinem Grund zeigt der Qualys SSL-Test jedoch an, dass Clients, die eine Verbindung zu meinem Host herstellen, die StartCom Class 1 Primary Intermediate Server-Zertifizierungsstelle, die ich definitiv in das kombinierte Zertifikat aufgenommen habe, zusätzlich herunterladen müssen ( Screenshot ). Das ist komisch.
Neurotransmitter
1

Okay, habe es in letzter Zeit endlich herausgefunden und beschlossen, Details im Antwortformular zu veröffentlichen.

Jetzt legt StartSSL das Zertifikat beim Abrufen im Zip-Archiv ab und es sind dort zahlreiche Archive enthalten. Von besonderem Interesse ist ApacheServer.zipein Apache> 2.4-kompatibles Formular. Die Dateien im Apache-Ordner sind:

1_root_bundle.crt
2_myhost.tld.crt

Sie müssen SSLCertificateFileaus diesen beiden Zertifikaten brauen , aber in dieser Reihenfolge:

cat 2_myhost.tld.crt 1_root_bundle.crt > myhost.tld_combined.crt

Also in der Site Conf wird es nur sein:

    SSLCertificateFile    /etc/apache2/cert/myhost.tld_combined.crt
    SSLCertificateKeyFile /etc/apache2/cert/myhost.tld.key

Und alles wird gut, auch der Qualys SSL-Test .

Dies funktioniert sowohl für StartCom StartSSL als auch für WoSign-Zertifikate. Das Format ist das gleiche.

Neurotransmitter
quelle