Project

General

Profile

Scénario #27453

Updated by Joël Cuissinat over 1 year ago

Dans /usr/share/eole/diagnose/05-common il y a "TestCerts $server_cert 10 "certificat expiré"".

Dans la fonction TestCerts il y a :
<pre>
if [ -z "$4" ]; then
echo "$CERTFILE" | grep -q '^/etc/ipsec.d/'
[ $? = 0 ] && CAFILE=/etc/ipsec.d/cacerts/CertifCa.pem || CAFILE=/etc/ssl/certs/ca.crt
</pre>

On est bien dans ce cas puisque $4 n'est pas défini. Donc CAFILE est /etc/ssl/certs/ca.crt.

On a ensuite :
<pre>
if [[ -d ${CAFILE} ]]
then
cat ${CAFILE}/* > ${TMPFILE}
CAFILE=${TMPFILE}
fi
</pre>

Je vois pas bien pourquoi un fichier CAFILE deviendrait tout d'un coup un répertoire mais admettons.

Après nous avons :

ssl_cmd="/usr/bin/openssl verify -CAfile $CAFILE -CApath $FAKE_CAPATH -purpose any $CERTFILE"

Donc le certificat n'est validé que sur la CA généré localement pour les certificats auto signés :

. cadoles.crt => Erreur : self signed certificate

Si je lis la documentation :
<pre>
Après génération de la CA locale, un fichier /etc/ssl/certs/ca.crt est créé qui regroupe les certificats suivants :

ca_local.crt ;
ACInfraEducation.pem ;
tout certificat présent dans le répertoire /etc/ssl/local_ca/
</pre>

Le problème c'est que mon certificat est signé pour une CA nativement reconnu sur Ubuntu (donc n'est pas dans local_ca).

h3. Solutions à mettre en œuvre

* prendre en compte les CA local lors du test du certificat (ca me semble mieux).
* Corriger le test diagnose pour qu'il soit fonctionnel dans tous les cas

h3. Critères d'acceptation

* diagnose correct correcte

Back