Woher kommt die Zertifikatskette von OpenSSL?

Woher kommt die Zertifikatskette von OpenSSL?

Ich versuche, die Kette für flo2cash.com zu überprüfen. OpenSSL gibt Folgendes aus: openssl s_client -showcerts -connect flo2cash.com:443
CONNECTED(00000003) depth=3 C = SE, O = AddTrust AB, OU = AddTrust External TTP Network, CN = AddTrust External CA Root depth=2 C = GB, ST = Greater Manchester, L = Salford, O = COMODO CA Limited, CN = COMODO RSA Certification Authority depth=1 C = GB, ST = Greater Manchester, L = Salford, O = COMODO CA Limited, CN = COMODO RSA Domain Validation Secure Server CA depth=0 OU = Domain Control Validated, OU = Hosted by FreeParking Ltd, OU = COMODO SSL, CN = flo2cash.com

Zeigt an, dass die Wurzel „AddTrust External CA Root“ ist. Sowohl Chrome als auch Firefox zeigen nur 3 Ebenen in der Kette an, wobei das Zertifikat bei „COMODO RSA Certification Authority“ verwurzelt ist.

Wenn ich das letzte Zertifikat in der Kette überprüfe, erhalte ich Folgendes: subject= /C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Certification Authority issuer= /C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root notBefore=May 30 10:48:38 2000 GMT notAfter=May 30 10:48:38 2020 GMT

Dieses Zertifikat ist wirklich alt.

Folgendes ist in den CA-Paketen enthalten, die ich auf meinem Computer (Fedora 25 mit dem neuesten Patch) und auch in den Browsern finden kann:

subject= /C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Certification Authority issuer= /C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Certification Authority notBefore=Jan 19 00:00:00 2010 GMT notAfter=Jan 18 23:59:59 2038 GMT

Das alte Zertifikat muss irgendwoher kommen.

Antwort1

Auf meinem Mint-Laptop habe ich diealtZertifikat:

$ openssl x509 -noout -subject -issuer -in /usr/share/ca-certificates/mozilla/COMODO_RSA_Certification_Authority.crt 
subject= /C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Certification Authority
issuer= /C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Certification Authority

openssl s_clientgibt das höchste CA-Zertifikat zurück, COMODO RSA Certification Authoritydas von der obigen Root signiert ist:

$ openssl s_client -connect flo2cash.com:443
CONNECTED(00000003)
depth=3 C = SE, O = AddTrust AB, OU = AddTrust External TTP Network, CN = AddTrust External CA Root
verify return:1
depth=2 C = GB, ST = Greater Manchester, L = Salford, O = COMODO CA Limited, CN = COMODO RSA Certification Authority
verify return:1
depth=1 C = GB, ST = Greater Manchester, L = Salford, O = COMODO CA Limited, CN = COMODO RSA Domain Validation Secure Server CA
verify return:1
depth=0 OU = Domain Control Validated, OU = Hosted by FreeParking Ltd, OU = COMODO SSL, CN = flo2cash.com
verify return:1
---

Bearbeiten Sie /etc/ca-certificates.confdie Zeile mit dem obigen CA-Stammzertifikat und heben Sie die Auswahl auf ( mozilla/AddTrust_External_Root.crt):

#
# line begins with # is comment.
# line begins with ! is certificate filename to be deselected.
#
mozilla/ACCVRAIZ1.crt
mozilla/ACEDICOM_Root.crt
!mozilla/AC_Raíz_Certicámara_S.A..crt
mozilla/Actalis_Authentication_Root_CA.crt
!mozilla/AddTrust_External_Root.crt
mozilla/AddTrust_Low-Value_Services_Root.crt
mozilla/AddTrust_Public_Services_Root.crt
mozilla/AddTrust_Qualified_Certificates_Root.crt

Ausführen update-ca-certificates, um Ihren Cache neu zu erstellen.

Danach erhalten Sie dieselbe Kette wie Ihr Browser:

$ openssl s_client -connect flo2cash.com:443 -showcerts
CONNECTED(00000003)
depth=2 C = GB, ST = Greater Manchester, L = Salford, O = COMODO CA Limited, CN = COMODO RSA Certification Authority
verify return:1
depth=1 C = GB, ST = Greater Manchester, L = Salford, O = COMODO CA Limited, CN = COMODO RSA Domain Validation Secure Server CA
verify return:1
depth=0 OU = Domain Control Validated, OU = Hosted by FreeParking Ltd, OU = COMODO SSL, CN = flo2cash.com
verify return:1
---

Der Pfad, den ein Client vom Endentitätszertifikat zum Stamm-CA-Zertifikat erstellt, hängt von der im Client programmierten Logik ab. Dies ist in den Spezifikationen nicht definiert und unterliegt daher der Interpretation der Entwickler jedes einzelnen Clients.

Wenn beide Stamm-CA-Zertifikate in OpenSSL aktiviert sind, wird der erste angezeigte Pfad gewählt. Ihre Browser wählen einen anderen Pfad, weil sie die Möglichkeit dazu haben.

Antwort2

Welches alte Zertifikat? DasBrückeZertifikat für Comodo RSA Certification Authority von AddTrust External CA Root wird vom Server gesendet.WurzelZertifikat für AddTrust Externalmuss aus dem Truststore Ihres Systems stammen; es wird nicht vom Server gesendet, und selbst wenn es so wäre, verwirft OpenSSL alle vom Server empfangenen Roots korrekt und vertraut nur Roots, die es im lokalen Truststore findet. Ich verwende kein Fedora, aber mein CentOS hat es in der /etc/pki/tls/certs/ca-bundle.crtinstallierten Form ca-certificates(und RHEL vermutlich auch).

Ja, diese AddTrust-Root ist eine der älteren CA-Roots, die noch aktiv sind. Obwohl das Bridge-Zertifikat vor dem 30.05.2000 um 10:48:38 Uhr nicht perfekt (und unrealistischerweise) mit seinem Vorgänger übereinstimmte, bin ich sicher, dass dies rückdatiert wurde; es ist mit SHA384 signiert, aber FIPS180-2 wurde erst 2002 veröffentlicht und noch weniger weit verbreitet. (Beispielsweise implementierte Windows XP SHA2-signierte Zertifikate erst mit SP3 im Jahr 2008.)

Comodo RSAs eigener Rootnicht vor 2010-01-19 00:00:00, kann aber auch rückdatiert sein, oder es wurde eine Zeit lang auf Eis gelegt; es ist auch mit SHA384 signiert, aber AIR, keine der öffentlichen CAs hat mit der Ausgabe und Verkettung von SHA2 bis Anfang 2014 (NISTs zweiter Fristversuch) begonnen und die meisten erst Ende 2015, als CABforum und einige große Browser tatsächlich anfingen, sich über SHA1 zu beschweren. Ich weiß nicht mehr, wo Comodo in diesem Spektrum lag, aber der einzige Truststore, den ich im Laufe der Zeit leicht verfolgen kann, Oracle-ehemals Sun Java, wurde comodorsacaerst mit 8u51 in 2015-06 hinzugefügt. (Es hatte addtrustexternalcazurückmindestensauf 6u7 in 2008-06; die Daten davor habe ich nicht.)

Zumindest ein Teil der Website von Comodozeigt die Vertrauenskette über das Bridge-Zertifikat zu AddTrust immer noch als korrekt an, obwohl es in weniger als 3 Jahren abläuft.

verwandte Informationen