TLDR: es ist die Kette cert
Sie müssen die richtige Ketten cert aus der CA und konfigurieren Sie es in Ihrem Server zu erhalten.
Normalerweise stellt eine CA das korrekte Ketten-Cert (oder manchmal Certs Plural) zur Verfügung, wenn Sie Ihr Serverzertifikat kaufen oder erhalten, und stellt auch alle seine Kettenzertifikate (normalerweise mehrere) auf seiner Website zur Verfügung, aber da weiß ich nicht Polnisch und kenne keine Kunden Ihrer CA certum.pl
Ich kann diese Ansätze hier nicht ansprechen. Heutzutage ist eine gebräuchliche Alternative, dass das Cert selbst eine Möglichkeit angibt, sein übergeordnetes Zertifikat im caIssuers
Attribut in der AuthorityInfoAccess
Erweiterung zu erhalten. Dies kann mit vielen Tools gesehen werden, einschließlich (zumindest) Desktop-Browsern, OpenSSL (x509 -noout -text -in $file
) und Java-Keytool (-printcert -v -file $file
), und Ihr Cert hat es und zeigt auf http://repository.certum.pl/dvcasha2.cer
. Das Holen dieser URL mit einem Werkzeug, das den Inhalt nicht interpretiert (d. H. Kein Browser, aber Dinge wie curl wget perl python oder javascript) ergibt das korrekte cert im DER-Format.
Die Konfiguration Ihres Servers hängt sehr vom Server ab, den Sie nicht identifiziert haben. Ihr Server identifiziert sich in einer Antwort als Server: Apache/2.4.7 (Ubuntu)
, aber dies könnte verfälscht werden, weil einige Leute dies als eine gute Möglichkeit betrachten, Angreifer zu verwirren (nicht sehr) oder irren, weil ein anderer Terminator vorne liegt. Wenn es wahr ist, obwohl es andere Möglichkeiten gibt, nehme ich den allgemeinen Standard mod_ssl
an. Die documentation for Apache 2.4 mod_ssl befindet sich auf der Apache-Website unter docs/2.4/modules/mod_ssl. Wie auf dieser Seite für 2.4.8 angegeben, können Sie das Kettenzertifikat im PEM-Format mit dem Server-Zertifikat in der von SSLCertificateFile
angegebenen Datei einschließen, aber darunter müssen Sie beide in eine Datei einfügen, die stattdessen von SSLCertificateChainFile
angegeben wird. Diese Konfiguration (Zertifikat einschließlich Kette, plus privater Schlüssel) kann per virtualhost sein, oder wenn sie nicht anders sein müssen, kann sie global sein. Unter Ubuntu ist die übliche Praxis (obwohl nicht obligatorisch), jede virtualhost-Konfiguration in eine separate Datei unter /etc/apache2/sites-available
zu setzen und sie unter zu verknüpfen.
Da das von der Zertifizierungsstelle erhaltene Zertifikat im DER-Format vorliegt, müssen Sie es zuerst in das PEM-Format konvertieren. Dies kann direkt von OpenSSL mit openssl x509 -inform der -in $derfile -out $pemfile
oder von zahlreichen anderen Programmen geschehen, die das DER-Format importieren und dann das PEM-Format (einschließlich mindestens Windows, Firefox/NSS und Java) ausgeben können.
Siehe https://www.ssllabs.com/ssltest/analyze.html?d=arvandkala.ir, wo die Meldung "Zertifikatskette ist unvollständig" steht und unter "Zertifizierungspfade" auf "Erweitern" klicken. Einige Browser können das fehlende Cert selbst mithilfe von AIA abrufen, einige jedoch nicht. PS: Ein Uhrfehler würde als 'abgelaufen' oder möglicherweise 'ungültig' erscheinen, aber niemals 'unbekannt'. –
@ dave_thompson_085 danke für den Kommentar, ich sehe Kette ist unvollständig, aber wie man das löst. Ich teste mehrere Wege, aber noch nicht gelöst. bitte Hilfe :) – Radian