web-dev-qa-db-fra.com

Le serveur 12.04.4 ne peut pas vérifier les certificats SSL communs, les correctifs habituels échouant

Le problème

J'ai un serveur dans une batterie qui est soudainement incapable de gérer correctement les certificats SSL. Tenter de faire une commande curl comme curl -v https://google.com a pour résultat:

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

Utiliser openssl s_client est un peu plus détaillé.

# 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

Les choses essayées jusqu'à présent

  • Réinstallation de ca-certificates - disposez déjà de la dernière version disponible, conformément à aptitude, Version: 20130906ubuntu0.12.04.1.

  • Reconfiguration de ca-certificates via dpkg-reconfigure. Cela semble réorganiser le dossier /etc/ssl/certs mais n’a aucun effet sur le problème.

  • Utiliser update-ca-certificates --fresh pour régénérer les liens symboliques dans ce dossier

  • Saisir le dernier ensemble Mozilla dans curl.haxx.se - en plaçant ce fichier .pem dans /etc/ssl/certs et en exécutant la commande de mise à jour.

Étrangeté

Le certificat que curl affirme ne pas pouvoir trouver se trouve bien dans le chemin de certification.

# 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
...

Le fichier de certificat référencé a les mêmes autorisations que toutes les autres boîtes de mon réseau, à savoir 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

D'autres sites sécurisés tels que Github présentent des problèmes identiques avec différents certificats. J'utilise la dernière version absolue disponible de tous les paquets pour Ubuntu 12.04.4, y compris curl, openssl et ca-certificates.

Que se passe t-il ici?

7
Mikey T.K.

Ce problème a cessé de se produire après quelques mises à jour. Il semble que le fichier de certification ca fourni dans le dépôt Ubuntu manquait d'un certificat intermédiaire pour GeoTrust.

0
Mikey T.K.

J'ai aussi ce problème, essayez ceci:

openssl s_client -Host google.com -port 443

cette commande imprimera également une chaîne de certificats, la dernière étant:

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

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

donc vous avez également besoin de https://www.geotrust.com/resources/root_certificates/certificates/Equifax_Secure_Certificate_Authority.pem .

Ce chemin de certificat est différent du chemin de certificat affiché dans le navigateur (IE, Firefox, Chrome), je ne sais pas pourquoi, mais cela résout mon problème.

2
ellusak