web-dev-qa-db-fra.com

OpenSSL ne récupère pas les CA dans le dossier certs par défaut

Sous Ubuntu 12.04 LTS, j'obtiens une erreur d'erreur de validation de certificat si le CApath n'est pas explicitement défini

J'ai essayé plusieurs solutions. Mais rien ne fonctionne. Il y a tellement de problème à installer de nouveaux paquets sur mon système (essayé au moins sur deux systèmes)

Commande réussie:

openssl s_client -connect secure.ogone.com:443 -showcerts -CApath /etc/ssl/certs/ 

Success with Verify return code: 0 (ok) 

Commande infructueuse

openssl s_client -connect secure.ogone.com:443 -showcerts 

Failed with Verify return code: 20 (unable to get local issuer certificate)

J'ai essayé de suivre la solution basée sur les réponses du wiki mais cela ne fonctionne pas non plus

openssl x509 -noout -hash -in /etc/ssl/certs/GeoTrust_Global_CA.pem 2c543cd1    
openssl x509 -noout -subject_hash_old -in /etc/ssl/certs/GeoTrust_Global_CA.pem 7999be0d    
openssl x509 -noout -subject_hash -in /etc/ssl/certs/GeoTrust_Global_CA.pem 2c543cd1

Je peux voir la différence dans les valeurs de hachage

J'ai essayé d'ajouter un script pour créer un lien symbolique avec -subject_hash_old et -subject_hash.

Mais le problème persiste et le code d'erreur Verify return code: 20 (unable to get local issuer certificate) s'affiche.

#!/bin/sh
Create following script to create symbolic links in /etc/ssl/certs
Link with subject_hash_old and subject_hash is successfully created


for FILE in /etc/ssl/certs/*.pem
do
   hasholdsub=`openssl x509 -noout -subject_hash_old -in $FILE`
   hashsub=`openssl x509 -noout -subject_hash -in $FILE`

   echo $hasholdsub $hashsub

   ln -s $FILE  $hasholdsub.0
   ln -s $FILE  $hashsub.0
   cat  $FILE >> ca-certificats-gen.crt
done

Mais ce problème existe toujours

S'il vous plaît aider à résoudre le problème.

1
Manoj Jain

Essayez d'utiliser -CAfile au lieu de -CApath et pointez sur le fichier de certificats CA concaténé unique. Par exemple.:

openssl s_client -connect secure.ogone.com:443 -showcerts \
                 -CAfile /etc/ssl/certs/ca-certificates.crt

Cela fonctionne pour moi, montrant verify return:1 et une chaîne de certificats complète.

Informations de base: Ce /etc/ssl/certs/ca-certificates.crt est géré par la commande update-ca-certificates, en concaténant simplement tous les certificats installés à l'échelle du système, y compris ceux installés manuellement dans /usr/local/share/ca-certificates/.

2
gertvdijk