[Android] Impossible de se connecter au cozy

Bonjour,

J’ai un cozy en auto-hébergé et lorsque j’essaie de connecter mon application mobile dessus j’ai l’erreur suivante :
net::ERR_CLEARTEXT_NOT_PERMITTED
L’erreur se produit en essayant d’accéder à la page suivante :
http://mon-cozy.com/auth/login?redirect=[...]

Niveau configuration, mon cozy n’est accessible qu’en HTTPS et dispose bien d’un certificat valide, fournit via Traefik (v2). Chaque requêtes HTTP est automatiquement redirigée vers HTTPS aussi je ne comprends pas que l’application mobile bloque sur des requêtes HTTP lors de l’enregistrement de l’application.

Hello,

Je présume que cette erreur est due au fait que l’URL http://mon-cozy.com/auth/login?redirect= est en http et non httpS. Reste à comprendre pourquoi… Les requêtes http ont beau être redirigées vers https, l’application côté client n’accepte aucune requête vers du http. C’est donc ça qui coince.
Au niveau de ton serveur, est-ce que quelque chose pourrait rediriger vers une URL en http ?

Salut,

Merci pour ta réponse, un dimanche en plus ! :slight_smile:
Au niveau du serveur, il ne me semble pas qu’il y ait quelque chose qui redirige vers du http. Cela dit, c’est Traefik en frontal qui fait les redirections mais Cozy n’a pas de configuration particulière en ce qui concerne le https. C’est peut-être ça qui pose problème.
Il faudrait peut-être exporter le certificat généré via Traefik et le configurer dans Cozy.
Est-ce que tu as un avis là dessus ?

Si tu as moyen de virer Traefik et de te connecter directement à ton serveur, ça sera sans doute plus simple. Ça supprimera en tout cas une cause possible d’erreur.
Pour l’instant, je n’ai pas connaissance d’autres Cozynautes rencontrant cette erreur, donc Traefik est en tête de ma liste de suspects.

Je ne peux malheureusement pas enlever Traefik car toute mon infrastructure passe par là et c’est lui qui gère les certificats.
J’ai remarqué tout de même quelque chose d’étrange du côté de Cozy. Mes requêtes d’authentification arrivent bien et la réponse suivante est émise :

 {
 	"_id": "20c24d6ee67524e928bc5537650b5fc5",
 	"_rev": "1-7cdd292f6d00ecfa695a8148bc4bfb29",
 	"client_secret": "***********************************",
 	"client_secret_expires_at": 0,
 	"redirect_uris": ["cozydrive://auth"],
 	"grant_types": ["authorization_code", "refresh_token"],
 	"response_types": ["code"],
 	"client_name": "Cozy Drive (Oneplus GM1913)",
 	"client_kind": "mobile",
 	"client_uri": "https://github.com/cozy/cozy-drive/",
 	"logo_uri": "https://github.com/cozy/cozy-drive/raw/master/targets/drive/vendor/assets/oauth-app-icon.png",
 	"policy_uri": "https://files.cozycloud.cc/cgu.pdf",
 	"software_id": "registry://drive",
 	"software_version": "1.24.0",
 	"cozyMetadata": {
 		"doctypeVersion": "1",
 		"metadataVersion": 1,
 		"createdAt": "2020-06-23T07:36:13.069953496Z",
 		"createdByApp": "drive",
 		"createdByAppVersion": "1.24.0",
 		"updatedAt": "2020-06-23T07:36:13.069953496Z"
 	}
 }

Le comportement me fait un peu penser à un curl sans follow redirect.

Nous ne pourrons pas t’aider davantage. Le souci est très probablement au niveau des redirections ajoutées par Traefik.

Si tu connais curl, tu peux peut-être essayer d’obtenir un jeton OAuth en ligne de commande, pour voir si Traefik ajoute des redirections en http.
Voici un exemple de danse OAuth en ligne de commande : https://gist.github.com/clochix/cbc7aa4da38807f955a2f8aa77436f51#file-cozycli-sh-L47