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