Después de instalar el Taskwarrior y el servidor Taskwarrior en Ubuntu 16.04 en Windows 10 y de sincronizar con éxito el Taskwarrior con el servidor Taskwarrior en ese portátil, estoy intentando sincronizar la app fdroid taskwarrior en LineageOS 7.1.2 con el portátil.
- O bien cuando están localmente en la misma red wifi, sin un router configurable,
- O a través de Internet, preferiblemente sin depender de servicios externos servicios externos.
Así que la pregunta es, ¿qué solución/valor de taskd.server en la aplicación apk me permitiría conectarme a mi pc local con dirección ip estática local: y dirección ip compartida pública? ?^
^Mientras se satisfacen las restricciones:
- Preferiblemente sin dependencia de servicios externos
- Por lo demás, es un servicio de pago que permite mantener su propia seguridad/certificados.
Ahora no espero una respuesta sencilla, Agradecería mucho las confirmaciones de las suposiciones o las explicaciones de por qué mis suposiciones o razonamientos son inválidos/incompletos.
Información que describe los pasos de instalación seguidos:
- Para simplificar, todas las opciones se multiplican por aplicadas dos veces, para alternarlas con la siguiente configuración:
ciphers=NORMAL
ciphers=SECURE256
Como se sugiere aquí: https://bitbucket.org/kvorobyev/taskwarriorandroid/issues/2/provide-a-taskrcandroid-with-options-and
-
Los certificados se copian de la carpeta en Ubuntu
/home/a/.task
a la carpetaC:/exportcertificates
en el sistema operativo Windows 10 con el siguiente comando: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
siguiente en Windows, ca.cert.pem
se abre en subliminal. Todo el texto anterior -----BEGIN CERTIFICATE-----
para asegurarse de que el certificado ca.cert.pem comienza con -----BEGIN CERTIFICATE-----
finaliza con -----END CERTIFICATE-----
como sugirió el propietario del repo aquí: https://bitbucket.org/kvorobyev/taskwarriorandroid/issues/19/failed-sync-on-Android-601-nexus-6
A continuación, se copian estos 3 certificados en el almacenamiento interno del teléfono Android con LineageOS, Android 7.1.2.
- La ubicación del almacenamiento de los certificados se crea manualmente en el almacenamiento interno del teléfono como :
/storage/self/primary/Android/data/kvj.taskw/files/<uuid>
Dónde está la clave de usuario en la instalación original de Ubuntu de taskserver, como se especifica aquí: https://gitpitch.com/GothenburgBitFactory/taskserver-setup#/13/2 . Esto se adhiere al protocolo según: https://wiki.archlinux.org/index.php/Taskd
A continuación se crea una nueva cuenta y la ubicación que la acompaña es la creada anteriormente <uuid>
.
- Hay
n
claves, y certificados producidos, algunos podrían estar basados en la información en El archivo /var/taskd/vars que contiene la línea "CN=localhost".
Si uno de los 3 certificados exportados, muy probablemente ca.cert.pem
se basa en que CN=localhost
podría producir un error ya que el "archivo de configuración" de la aplicación taskwarrior necesita referirse a un host diferente/externo si quiere conectarse al localhost de ese pc. Como creo que está implícito aquí: https://gitpitch.com/GothenburgBitFactory/taskserver-setup#/9/2
- El pc tiene IP local:
172.XX.YY.4
y todos los ordenadores de todo el edificio (más de 200 ordenadores) comparten la siguiente dirección IP externa:89.AAA.BBB.4
. Así que lo primero que intenté fue acceder al router del edificio en la puerta de enlace por defecto para configurar un portforward. Eso no fue posible, ni con https://github.com/kaklakariada/portmapper y el admistrador del sistema indicado:
Los routers no se suministran al edificio, usted en su lan individual se le da a través de DHCP una dirección IPv4 pública. Si usted conecta su PC a la lan no necesita portforward. Si Si quieres puedes poner un router entre la toma de corriente y tu pc para para hacer el portforward.
Eso parece sugerir que sin el portforward debería conectarse directamente al localhost.
Pero no entiendo cómo puedo decirle que vaya desde la dirección IP pública 89.AAA.BBB.4
a la dirección IP local 89.AAA.BBB.4
en el puerto 53589
.
- Actualmente estoy trabajando en forzar todos los intentos de conexión a
localhost
en otro PC de la lista. La lista contiene la configuración de la aplicación taskwarrior F-droid:"
si no se especifican las siguientes líneas, se añaden en la configuración como
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
O:
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
Lista de intentos actuales:
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
Luego traté de hacer un túnel con un host externo usando ngrok (Fuente: https://dashboard.ngrok.com/get-started )
He descargado y desempaquetado el ngrok.exe
a c:/ngrok/
abrió cmd>cd c:/ngrok
e introducir los siguientes comandos:
ngrok http 80
Que volvió:
http://f59195a3.ngrok.io -> localhost:80
https://f59195a3.ngrok.io -> localhost:80
Así que el archivo de configuración en el archivo APK se estableció en:
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
Y a:
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
Y a:
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
Y a:
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
Y a:
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
Y a:
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
Sin un número de puerto especificado al final, por ejemplo taskd.server=https://f59195a3.ngrok.io
, devuelve inmediatamente el siguiente error:
Sincronización desactivada: fallo de carga del certificado
Con un puerto especificado, por ejemplo taskd.server=f59195a3.ngrok.io:80
y taskd.server=f59195a3.ngrok.io:53589
la sincronización está configurada con éxito y lo intenta y falla después de unos minutos con el error:
Fallo en la recepción de datos: Error no conocido -1 sync failed. No se pudo conectar al servidor de tareas.
Este procedimiento se repite con los diferentes túneles seguros por ngrok utilizando el reenvío al puerto 53589
(que se establece abierto en el firewall de Windows. TODO: Presentar pruebas de que es alcanzable desde un sistema externo (no wifi local)).
ngrok http 53589
ngrok tcp 53589
Sin un syc exitoso.
A continuación se utiliza un enfoque similar utilizando https://localtunnel.github.io/www/ . después de la instalación los siguientes comandos se utilizan para configurar un túnel seguro al servidor en Windows 10.
lt --port 53589
que regresan: https://ancient-octopus-100.localtunnel.me
De forma análoga a ng, los servidores sin el puerto especificado fallan inmediatamente por el error de certificado descrito anteriormente.
Y los que tienen especificación de puerto lo intentaron pero fallaron después de unos minutos con el mismo error especificado arriba.
Luego estaba el impresionante sitio de https://www.freecinc.com/ que proporciona un servicio de alojamiento. Sin embargo sólo permite utilizar las claves que genera ese servicio. Por lo que tengo entendido, al usar eso, se pierde la seguridad, lo cual agradezco.
El otro equivalente impresionante es https://inthe.am/ que requiere una cuenta de Google. Que estoy tratando de evitar.
La siguiente opción es modificar el cn=.. en el archivo de configuración en el propio servidor de alojamiento (mi portátil) para que coincida con el valor que de lo que eventualmente necesita ser rellenado en la aplicación Android taskwarrior. Sin embargo, ya que no he determinado este valor todavía, y asumo que el ca.cert.pert depende del valor "cn=.." en el archivo de configuración que necesitan ser transferidos cada iteración, por lo que es un proceso bastante enrevesado.
En contra de las recomendaciones estoy tratando de usar un portátil como servidor de alojamiento, y estaría extasiado si el teléfono Android y el portátil pudieran sincronizarse si están en la misma red wifi de casa.
Aquí se sugiere https://gitpitch.com/GothenburgBitFactory/taskserver-setup#/10/1 para utilizar "el nombre completo de su máquina para una correcta direccionabilidad en la red". hostname -f
devuelve DESKTOP-2XXXXXT.localdomain
No creo que ese sea el "nombre completo de la máquina".