Projet

Général

Profil

Scénario #27453

Mis à jour par Joël Cuissinat il y a plus de 4 ans

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. définir. 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).

Il faudrait donc :

- soit copier dans local_ca toutes les autorités connus (ca me semble étrange) ;
- soit prendre en compte les CA local lors du test du certificat (ca me semble mieux).

h3. Solutions à mettre en œuvre

* Corriger le test diagnose pour qu'il soit fonctionnel dans tous les cas

h3. Critères d'acceptation

* ...

Retour