Après avoir installé Taskwarrior et le serveur Taskwarrior sur Ubuntu 16.04 sur Windows 10 et réussi à synchroniser Taskwarrior avec le serveur Taskwarrior sur cet ordinateur portable, j'essaie de synchroniser l'application fdroid taskwarrior sur LineageOS 7.1.2 avec l'ordinateur portable.
- Soit lorsqu'ils sont localement sur le même réseau wifi, sans routeur configurable,
- Ou par internet, de préférence sans dépendance vis-à-vis de l'extérieur externes.
La question est donc la suivante , quelle solution/valeur de taskd.server dans l'application apk me permettrait de me connecter à mon PC local avec une adresse IP statique locale : et une adresse IP publique partagée : ?^
Tout en respectant les contraintes :
- De préférence sans dépendance à l'égard de services externes
- Sinon, un service non payant qui permet de maintenir votre propre sécurité/certificats.
Maintenant, je n'attends pas une réponse simple, J'apprécierais vraiment que l'on me confirme mes hypothèses ou que l'on m'explique pourquoi mes hypothèses ou mes raisonnements sont invalides/incomplets.
Informations qui décrivent les étapes d'installation suivies :
- Par souci de simplification, toutes les options sont multipliées par deux, afin d'alterner pour le réglage suivant :
ciphers=NORMAL
ciphers=SECURE256
Comme suggéré ici : https://bitbucket.org/kvorobyev/taskwarriorandroid/issues/2/provide-a-taskrcandroid-with-options-and
-
Les certificats sont copiés depuis le dossier dans Ubuntu
/home/a/.task
dans le dossierC:/exportcertificates
sur le système d'exploitation Windows 10 avec la commande suivante :cp /home/a/.task/first.cert.pem /mnt/c/exportcertificates cp /home/a/.task/first.key.pem /mnt/c/exportcertificates cp /home/a/.task/ca.cert.pem /mnt/c/exportcertificates
suivant dans Windows, ca.cert.pem
est ouvert en subliminal. Tout le texte ci-dessus -----BEGIN CERTIFICATE-----
est supprimé, pour s'assurer que le certificat ca.cert.pem commence avec -----BEGIN CERTIFICATE-----
la fin se termine par -----END CERTIFICATE-----
comme le suggère le propriétaire du dépôt ici : https://bitbucket.org/kvorobyev/taskwarriorandroid/issues/19/failed-sync-on-Android-601-nexus-6
Ensuite, ces 3 certificats sont copiés sur le stockage interne du téléphone Android avec LineageOS, Android 7.1.2.
- L'emplacement du stockage des certificats est créé manuellement dans le stockage interne du téléphone comme :
/storage/self/primary/Android/data/kvj.taskw/files/<uuid>
Où est la clé utilisateur dans l'installation Ubuntu originale de taskserver, comme spécifié ici : https://gitpitch.com/GothenburgBitFactory/taskserver-setup#/13/2 . Cela respecte le protocole selon : https://wiki.archlinux.org/index.php/Taskd
Ensuite, un nouveau compte est créé et l'emplacement qui accompagne ce compte est l'emplacement créé précédemment. <uuid>
.
- Il y a
n
les clés et les certificats produits, certains pourraient être basés sur les informations contenues dans : le fichier /var/taskd/vars qui contient la ligne "CN=localhost".
Si l'un des 3 certificats a été exporté, il est probable que ca.cert.pem
est basé sur ce CN=localhost
cela pourrait produire une erreur puisque le "fichier de configuration" de l'application Taskwarrior doit faire référence à un hôte différent/externe s'il veut se connecter à l'hôte local sur ce PC. Comme je pense que c'est implicite ici : https://gitpitch.com/GothenburgBitFactory/taskserver-setup#/9/2
- Le pc a une IP locale :
172.XX.YY.4
et tous les PC de l'immeuble (200+ PC) partagent l'adresse IP externe suivante :89.AAA.BBB.4
. J'ai donc d'abord essayé d'accéder au routeur de l'immeuble au niveau de la passerelle par défaut pour configurer un portforward. Cela n'a pas été possible, ni avec https://github.com/kaklakariada/portmapper et l'administrateur du système a indiqué :
Les routeurs ne sont pas fournis au bâtiment, vous êtes sur votre propre réseau. individuels, on vous donne une adresse IPv4 publique via DHCP. Si vous connectez votre ordinateur au réseau local, vous n'avez pas besoin d'effectuer une redirection de port. Si Si vous voulez, vous pouvez mettre un routeur entre la prise murale et votre ordinateur pour portforward.
Cela semble indiquer que, sans la redirection de port, il devrait se connecter directement à l'hôte local.
Mais je ne comprends pas comment je peux lui dire de passer par une adresse IP publique. 89.AAA.BBB.4
à l'adresse IP locale 89.AAA.BBB.4
au port 53589
.
- Je travaille actuellement sur le forçage brutal de toutes les tentatives de connexion à
localhost
sur un autre pc listé ci-dessous. La liste contient les paramètres de l'application taskwarrior F-droid :"
si les lignes suivantes ne sont pas spécifiées, elles sont ajoutées dans les paramètres comme soit :
taskd.certificate=first.cert.pem
taskd.key=first.key.pem
taskd.ca=ca.cert.pem
taskd.credentials=<organisation>\/<username of taskwarrior>\/<User key>
ciphers=NORMAL
Ou :
taskd.certificate=first.cert.pem
taskd.key=first.key.pem
taskd.ca=ca.cert.pem
taskd.credentials=<organisation>\/<username of taskwarrior>\/<User key>
ciphers=SECURE256
Liste des tentatives en cours :
taskd.server=localhost:53589
taskd.server=127.0.0.1:53589
taskd.server=172.XX.YY.4:53589
taskd.server=89.AAA.BBB.4:53589
Ensuite, j'ai essayé de tunneliser un hôte externe en utilisant ngrok (Source : https://dashboard.ngrok.com/get-started )
J'ai téléchargé et décompressé le ngrok.exe
a c:/ngrok/
ouvert cmd>cd c:/ngrok
et entré les commandes suivantes :
ngrok http 80
Qui est revenu :
http://f59195a3.ngrok.io -> localhost:80
https://f59195a3.ngrok.io -> localhost:80
Donc le fichier de configuration dans le fichier APK était réglé sur :
taskd.certificate=first.cert.pem
taskd.key=first.key.pem
taskd.ca=ca.cert.pem
taskd.server=http://f59195a3.ngrok.io
taskd.credentials=<organisation>\/<username of taskwarrior>\/<User key>
ciphers=NORMAL
Et à :
taskd.certificate=first.cert.pem
taskd.key=first.key.pem
taskd.ca=ca.cert.pem
taskd.server=http://f59195a3.ngrok.io
taskd.credentials=<organisation>\/<username of taskwarrior>\/<User key>
ciphers=SECURE256
Et à :
taskd.certificate=first.cert.pem
taskd.key=first.key.pem
taskd.ca=ca.cert.pem
taskd.server=https://f59195a3.ngrok.io
taskd.credentials=<organisation>\/<username of taskwarrior>\/<User key>
ciphers=NORMAL
Et à :
taskd.certificate=first.cert.pem
taskd.key=first.key.pem
taskd.ca=ca.cert.pem
taskd.server=https://f59195a3.ngrok.io
taskd.credentials=<organisation>\/<username of taskwarrior>\/<User key>
ciphers=SECURE256
Et à :
taskd.certificate=first.cert.pem
taskd.key=first.key.pem
taskd.ca=ca.cert.pem
taskd.server=f59195a3.ngrok.io
taskd.credentials=<organisation>\/<username of taskwarrior>\/<User key>
ciphers=NORMAL
Et à :
taskd.certificate=first.cert.pem
taskd.key=first.key.pem
taskd.ca=ca.cert.pem
taskd.server=f59195a3.ngrok.io
taskd.credentials=<organisation>\/<username of taskwarrior>\/<User key>
ciphers=SECURE256
Sans numéro de port spécifié à la fin, par ex. taskd.server=https://f59195a3.ngrok.io
il renvoie immédiatement l'erreur suivante :
Sync désactivée : échec du chargement du certificat
Avec un port spécifié, par exemple taskd.server=f59195a3.ngrok.io:80
y taskd.server=f59195a3.ngrok.io:53589
la synchronisation est configurée avec succès et elle essaie et échoue après quelques minutes avec l'erreur :
Échec de la réception des données : Unkown error -1 sync failed. Impossible de se connecter au Taskserver.
Cette procédure est répétée avec le différent tunnel sécurisé par ngrok en utilisant forward to port 53589
(qui est ouvert dans le pare-feu de Windows. TODO : Présenter la preuve qu'il est joignable depuis un système externe (pas le wifi local)).
ngrok http 53589
ngrok tcp 53589
Sans une sycologie réussie.
Ensuite, une approche similaire est utilisée en utilisant https://localtunnel.github.io/www/ . après l'installation, les commandes suivantes sont utilisées pour configurer un tunnel sécurisé vers le serveur sur Windows 10.
lt --port 53589
retour : https://ancient-octopus-100.localtunnel.me
De manière analogue à ng, les serveurs sans le port spécifié ont immédiatement échoué sur l'erreur de certificat décrite ci-dessus.
Et ceux avec la spécification du port ont essayé mais ils ont échoué après quelques minutes sur la même erreur comme spécifié ci-dessus.
Ensuite, il y avait le site génial de https://www.freecinc.com/ qui fournit un service d'hébergement. Cependant, il ne permet d'utiliser que les clés générées par ce service. D'après ce que je comprends, en utilisant cela, vous perdez votre sécurité, ce que j'apprécie.
L'autre équivalent génial est https://inthe.am/ qui nécessite un compte google. W
La prochaine option est de modifier le cn=.. dans le fichier de configuration sur le serveur d'hébergement (mon ordinateur portable) lui-même afin qu'il corresponde à la valeur de ce qui doit éventuellement être rempli dans l'application Android taskwarrior. Cependant, comme je n'ai pas encore déterminé cette valeur, et je suppose que le ca.cert.pert dépend de la valeur "cn=.." dans le fichier de configuration, ils doivent être transférés à chaque itération, ce qui en fait un processus plutôt alambiqué.
Contre les recommandations, j'essaie d'utiliser un ordinateur portable comme serveur d'hébergement, et je serais ravi si le téléphone Android et l'ordinateur portable pouvaient se synchroniser s'ils sont sur le même réseau wifi domestique.
Il est suggéré ici https://gitpitch.com/GothenburgBitFactory/taskserver-setup#/10/1 d'utiliser "le nom complet de votre machine pour une adressabilité correcte du réseau". hostname -f
renvoie à DESKTOP-2XXXXXT.localdomain
Je ne pense pas que ce soit le "nom complet de la machine".