12.04.4 Server kann keine gängigen SSL-Zertifikate überprüfen, übliche Korrekturen schlagen fehl


7

Das Problem

Ich habe einen Server in einer Farm, der plötzlich nicht mehr richtig mit SSL-Zertifikaten umgehen kann. Der Versuch, einen Curl-Befehl wie curl -v https://google.comfolgt auszuführen, führt zu:

curl -v https://google.com
* About to connect() to google.com port 443 (#0)
*   Trying 74.125.137.101... connected
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS handshake, Server hello (2):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS alert, Server hello (2):
* SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

Die Verwendung openssl s_clientist etwas detaillierter.

# openssl s_client -host google.com -port 443
CONNECTED(00000003)
depth=2 /C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
verify error:num=20:unable to get local issuer certificate

Bisher versuchte Dinge

  • Neuinstallation ca-certificates- haben bereits die neueste verfügbare Version, laut aptitude, Version: 20130906ubuntu0.12.04.1.

  • Neukonfiguration ca-certificatesüber dpkg-reconfigure. Dies scheint den /etc/ssl/certsOrdner erneut zu verarbeiten, hat jedoch keine Auswirkungen auf das Problem.

  • Verwenden Sie update-ca-certificates --fresh, um die symbolischen Links in diesem Ordner neu zu generieren

  • Holen Sie sich das neueste Mozilla Ca-Bundle aus curl.haxx.se- indem Sie diese PEM-Datei einfügen /etc/ssl/certsund den Befehl update ausführen .

Seltsamkeit

Das Zertifikat, das curlbehauptet, nicht gefunden zu werden, befindet sich tatsächlich im Zertifizierungspfad.

# ls -l /etc/ssl/certs/*Geo*

lrwxrwxrwx 1 root root 57 Apr  7 15:57 /etc/ssl/certs/GeoTrust_Global_CA.pem -> /usr/share/ca-certificates/mozilla/GeoTrust_Global_CA.crt
...

Die referenzierte Zertifikatdatei hat die gleichen Berechtigungen wie jede andere Box in meinem Netzwerk, nämlich 644.

# ls -l /usr/share/ca-certificates/mozilla/GeoTrust_Global_CA.crt
-rw-r--r-- 1 root root 1216 Feb 20 11:49 /usr/share/ca-certificates/mozilla/GeoTrust_Global_CA.crt

Andere sichere Sites wie Github weisen identische Probleme mit unterschiedlichen Zertifikaten auf. Ich verwende die allerneuste Version aller Pakete für Ubuntu 12.04.4, einschließlich curl, opensslund ca-certificates.

Was ist denn hier los?

Antworten:


2

Ich habe auch dieses Problem, versuchen Sie dies:

openssl s_client -host google.com -port 443

Dieser Befehl druckt auch eine Zertifikatskette. Die letzte lautet:

s:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA

i:/C=US/O=Equifax/OU=Equifax Secure Certificate Authority

Daher benötigen Sie auch https://www.geotrust.com/resources/root_certificates/certificates/Equifax_Secure_Certificate_Authority.pem .

Dieser Zertifizierungspfad unterscheidet sich vom im Browser angezeigten Zertifizierungspfad (IE, Firefox, Chrome). Ich weiß nicht warum, aber dies behebt mein Problem.


0

Dieses Problem trat nach einigen Updates nicht mehr auf. Es sieht so aus, als ob in der in den Ubuntu-Repos bereitgestellten ca-certificates-Datei ein Zwischenzertifikat für GeoTrust fehlte.


Nee. Letzte Änderung für ca-certificateswar Februar 2014. Siehe das Änderungsprotokoll . Sind Sie sicher, dass immer noch dieselbe Zertifikatskette angezeigt wird, die vom Google-Server angeboten wird? Google neigt dazu, Zertifikate zu wechseln, die Unterstützung für ECC ab und zu zu ändern usw.
gertvdijk
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.