DavDroid et certificat ssl autosigné.

ATTENTION : Cet article à plus de 4 années, il se peut que les infos soient obsolètes ou à adapter aux dernières versions des logiciels.

De façon à synchroniser les contacts et les agendas d’owncloud j’ai voulu utiliser DavDroid qui est un connecteur CalDAV/CardDAV disponible dans les paquets F-Droid. Coté owncloud j’utilises la dernière version (7.0.4) accessible en https avec un cetificat SSL autosigné et c’est là que les problèmes arrivent.

Voici une copie d’écran de DavDroid quand on essaie de se connecter au serveur :

erreur_davdroidClairement il y a un problème avec le certificat. J’ai déjà vu des applications Android qui pour bypasser ce problème proposaient de valider tout les certificats, ce qui est à proscrire.

 

Il a donc fallu trouver le moyen de faire enregistrer le certificat racine de l’autorité de certification. Pour rappel j’utilises cette procédure pour générer mes certificats ssl : Mise en place d’une infrastructure PKI.

Il faut donc pouvoir ajouter le cacert.pem dans les certificats reconnus par Android. Ce qu’il faut savoir c’est qu’Android ne comprends que les certificat au format binaire et avec l’extension .crt. Hors le cacert.pem comprends une partie « en clair » et une partie codée. Il faut donc transformer le certificat.

Il faut donc faire :

# openssl x509 -inform PEM -outform DER -in cacert.pem -out cacert_der.crt

 

L’étape suivante consiste à importer le certificat dans Android.

1/ Récupérer le certificat (le mettre dans owncloud par exemple et le rélécharger sur le téléphone)

2/ Aller dans les paramètres de sécurité et faire « Installer depuis la carte SD », attribuer un nom au certificat :

ajout_certificatPour vérifier que le certificat est bien importé, aller dans « Certificats de confiance » et dans l’onglet « Utilisateur ».

On peut retourner dans DavDroid et cette fois-ci le certificat de l’autorité étant connu, on peut se connecter et choisir les carnets d’adresse et agendas à synchroniser :

davdroid_sync

4 Comments

 Add your comment
  1. Sinon, l’équipe de dev de DavDroid a prévu le coup et a pondu CAdroid, qui permet d’aller chercher un certificat en tapant juste l’url du site, puis à l’importer dans la base de CA.

    Dispo sur F-Droid.

    • Je suis passé par cette solution car on a jamais réussi à faire importer le certificat via CADroid. CADroid demande à ce qu’il y ait un paramètre CA:True dans le certificat du site hors les sites ne sont pas sécurisés avec le certificat racine mais par un certificat pour le site signé par l’autorité de certification.
      Si tu as une solution pour importer le certicat racine via CADroid je veux bien.

  2. merci, j’ai pu faire fonctionner un samsung S3 avec un certificat délivré par gandi.net en important le certificat intermédiare

    • Bonjour Bernard. Heureux que mon blog ai servi à au moins une personne de plus que moi 🙂
      NB que avec les certificats SSL de Gandi, pas besoins d’importer le certificat intermédiaire. Je vais faire un article je penses avec la bonne conf car j’ai un peu cherché avant d’arriver à la faire correctement.

Leave a Comment

Your email address will not be published.