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?

Mikey TK
quelle

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.

Ellusak
quelle
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.

Mikey TK
quelle
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