barbogogo / leedReader

LeedReader est un lecteur de flux RSS/ATOM pour Android et adapté à l'agrégateur de flux leed.
http://www.barbogogo.fr/projets/applications-leed/leedreader/
Other
17 stars 6 forks source link

Impossible de se connecter sur une url en SSL avec un certificat autosigné #18

Open gbour opened 11 years ago

gbour commented 11 years ago

Bonjour

LeedReader ne peut pas se connecter si Leed est installé sur une serveur avec SSL activé et utilisant un certificat autosigné.

Cdt, Guillaume

barbogogo commented 11 years ago

Bonjour Guillaume,

En effet, cette fonctionnalité n'est pas implémentée. A suivre...

Merci, Jérôme

nW44b commented 11 years ago

Yep, je confirme, c'est un peu chiant :/ Merci pour l'appli sinon …

barbogogo commented 11 years ago

Bonjour, J'ai ajouter la possibilité de se connecter an SSL. Par contre, je n'ai pas essayé (je n'ai pas de certificat). Est-ce que quelqu'un peut faire des test ? Vous pourrez trouver un fichier apk sur ce lien de partage.

barbogogo commented 11 years ago

Petite précision : il faut que le certificat soit valide, sinon il y a une exception.

Merci pour vos retour :smile:

kvnco commented 11 years ago

Hello,

Je viens d'effectuer le test avec un certificat valide mais autosigné, et j'ai toujours l'erreur… :-/ À confirmer par qqn d'autre ?

nW44b commented 11 years ago

Hello,

je confirme. Toujours la même erreur avec un certificat valide et auto-signé.

barbogogo commented 11 years ago

Bonjour,

Est-ce que vous avez mis un lien du type "https://lienrss"? ça vous donne quoi comme erreur ?

nW44b commented 11 years ago

Le problème c'est que je ne peux pas me connecter à mon Leed installé sur mon serveur. Certificat correct et auto-signé. Erreur : APIConnection Error javax.net.ssl.SSLPeerUnverifiedExeption: No peer certificate

barbogogo commented 11 years ago

Bon, j'ai fait quelques recherches et il semble que pour des raisons de sécurité (pour ne pas compromettre le certificat de sécurité), une procédure assez complexe est à réaliser pour se connecter à un serveur à l'aide d'un certificat SSL. Je vous donne quelques liens :

Est-ce que vous souhaitez toujours implémenter cette fonction ?

J'arrive à me connecter en SSL avec un certificat signé mais pas avec un certificat auto-signé...

kvnco commented 10 years ago

Bonjour,

Après une recherche, je me suis aperçu que le pb du certificat auto-signé est facilement corrigeable en important le certificat dans le terminal. Ce bug n'en est donc plus un pour moi. :) C'est peut-être une évidence pour tout le monde, mais ça ne l'était pas pour moi, donc je poste ça ici. ;)

Sous Android 4.1.1, un menu existe pour gérer/ajouter des certificats dans le menu Système > Sécurité. Il semble qu'il propose même d'installer automatiquement les fichiers pem.

Ensuite, Leed reconnaît la connexion SSL sans soucis. :)

Attention, ça marche avec les certificats auto-signés, mais je ne pense pas que ça permette de gérer un certificat avec un mauvais CN (cf. Issue #69). Néanmoins, je n'ai pas fait le test…

Sbgodin commented 10 years ago

@barbogogo, me concernant je tiens toujours à me connecter de cette façon. Je peux bien refaire mon certificat correctement, mais sans le signer par une autorité de certification. L'actualité récente me confirme bien mes doutes initiaux : faire confiance aux autorités classiques ne sert à pas grand chose. Je ne sais pas où ça en est chez Android, mais dans certains cas la substitution de mon certificat à la volée par un autre certificat signé peut se faire sans levée d'alerte.

Or, je voudrais n'avoir qu'un avertissement timide (et une seule fois) quand le certificat du site est non-signé par une autorité connue ou qu'il est en mode branque comme chez moi. Par contre, si le certificat change entre temps, là une grosse alerte doit surgir.

Merci père Noël.

kvnco commented 10 years ago

@Sbgodin Je ne comprends pas bien : quel est le soucis dans l'idée d'importer ton certif auto-signé dans ton terminal ?

Sbgodin commented 10 years ago

J'aurais bien aimé que l'application le fasse de façon transparente. Genre "mmh pas bon, parce que si et ça, vous êtes sûr ?". Je l'ai fait, le système m'indique qu'il est bien importé mais je ne le trouve pas dans la liste et j'ai encore le message d'erreur.

Je vais refaire un certificat auto-signé correct, je reviens ici ensuite.

kvnco commented 10 years ago

D'accord avec toi pour le "si et ça, vous êtes sûr ?" Sauf que c'est visiblement un peu compliqué à faire et que je ne sais pas le faire non plus. :)

Ensuite essaie effectivement avec un certif auto-signé comportant un CN correct, mais je te confirme que si tu ne vois pas ton certificat importé dans la liste ("Utilisateur"), c'est qu'il y a un soucis !

Sbgodin commented 10 years ago

J'ai généré un certificat auto-signé avec le bon CN. La manip' a marché ce coup-ci. Android a accepté l'import, il a supprimé le fichier de la racine de la carte SD silencieusement, comme avant. Mais là, je le vois dans la liste.

Du coup, ça marche effectivement. Mais c'est dommage parce que la manipulation n'est pas à la portée de tous. La grosse majorité des utilisateurs devrait avoir du mal avec ça. C'est le principe même des certificats qu'il faudrait revoir en laissant l'ICC se débrouiller si elle le souhaite.

Je résume donc la situation :

kvnco commented 10 years ago

Pas complètement d'accord.

Un utilisateur lambda n'ira pas se créer des certificat auto-signés. S'il le fait, on peut supposer qu'il est en mesure de faire cette manip.

Ensuite, qu'un certificat avec un mauvais CN ne fonctionne pas de cette façon me paraît normal comme dit plus haut. :)

Sbgodin commented 10 years ago

@kvnco Merci pour tout^^

barbogogo commented 10 years ago

Bonjour @Sbgodin, @kvnco,

Désolé, je ne suis pas très présent en ce moment. Si j'ai bien compris, un moyen existe pour utiliser un certificat auto-signé sous Android. Est-ce que vous avez toujours de problème quant à son utilisation pour LeedReader ?

Sbgodin commented 10 years ago

De mon côté, j'ai résumé la situation plus haut. Ça marche maintenant après avoir fait un certificat auto-signé correct et avoir indiqué à Android que je lui faisait confiance. Cette dernière manipulation étant tout à fait hors de portée d'un utilisateur normal. Mon souhait était de (pouvoir) complètement débrayer la vérification des certificats, mais j'ai l'impression que ce n'est pas possible de se passer de cette "fonctionnalité".

Ah ! Les certificats TLS. L'arnaque de la décennie. Au lieu de laisser (s'il le désire) l'utilisateur choisir son niveau de sécurité, on l'inonde de messages d'alertes sur les certificats pour mieux extorquer du pognon en échange de la signature desdits certificats. Et pendant ce temps, on apprend qu'en fait ils sont vulnérables aux premiers services d'espionnages venus.

kvnco commented 10 years ago

Hello @barbogogo,

Oui, je considère pour ma part que le soucis est réglé : c'est moi qui ne savais pas comment les certificats étaient gérés sous Android. (et faut reconnaître, c'est pas très expliqué !)

@Sbgodin La question est encore une fois de savoir si un "utilisateur normal" incapable de faire cette manipulation sait émettre un certificat auto-signé pour chiffrer les connexion à son serveur personnel. J'en doute fort…

cobalt74 commented 10 years ago

hello all. Pas trop de pression je pense que l'utilisateur normal ne fait pas de ssl :smile:

Sbgodin commented 10 years ago

Idem pour moi, pas d'autre soucis.

barbogogo commented 10 years ago

Ok, ça vous dit de clore le ticket ? A la limite on peut éventuellement proposer un "mode d'emploi" pour les "novices"...

nW44b commented 10 years ago

Arf, je trouve ça dommage. Perso je m'en fous, je m'en sors bien. Mais admettons que ma grand mère découvre mon Leed, elle va absolument en vouloir un, et absolument vouloir y accéder depuis son phone … Bon, si il y a un mode d'emploi qui est créé c'est cool. Genre dans le wiki …

cobalt74 commented 10 years ago

l'avantage c'est que si c'est ta grand mère, potentiellement, tu vas lui faire l'installation ;-)