Probando TLS con openssl

2

Estoy resolviendo problemas al hacer una conexión TLS y estoy usando openssl para hacerlo. No puedo conseguir que la computadora ARM (con Debian8) se conecte a mi servidor en GCP (mqtt: 8883 para ser exactos). Generé certificados autofirmados en el servidor y los instalé en la computadora ARM, pero no se conectará, claramente debido a un problema de certificado:

write:errno=104
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 0 bytes

En una máquina con Windows instalo certificados y openssl se conecta (openssl de MinGW / msys) y también mi VM Debian 8 en esa máquina con Windows. Así que estoy seguro de que el servidor está configurado correctamente y tengo el concepto de instalar los certificados. (curiosamente, cuando elimino los archivos de certificado que agregué, TODAVÍA funciona ... debe ser un poco de almacenamiento en caché, me gustaría saber para borrarlo)

En la máquina ARM que no funciona, he intentado especificar manualmente la ruta (-CApath) o el archivo (-CAfile).

¿Cómo verifico qué certificados está intentando openssl? ¿Se ve en subcarpetas?

¿Podría ser porque los certificados son autofirmados? (¿Por qué funcionaría en las otras máquinas entonces?)

Más información: probé openssl verificar en los certificados en la máquina ARM (el autofirmado y el certificado del servidor):

:/etc/ssl# openssl verify ca_certificates/ca.crt
ca_certificates/ca.crt: CN = An MQTT broker, O = OwnTracks.org, OU = generate-CA, emailAddress = [email protected]
error 18 at 0 depth lookup:self signed certificate
OK

:/etc/ssl# openssl verify ca_certificates/server.crt
ca_certificates/server.crt: CN = ########.com, O = OwnTracks.org, OU = generate-CA, emailAddress = [email protected]
error 20 at 0 depth lookup:unable to get local issuer certificate
    
pregunta Michael 25.04.2017 - 17:52
fuente

1 respuesta

3
  

claramente debido a un problema de certificado:

write:errno=104
...
SSL handshake has read 0 bytes and written 0 bytes

Esto definitivamente no es un problema de validación de certificados. Como puede ver, ha enviado 0 bytes y tiene 0 bytes. Esto significa que el protocolo de enlace SSL ni siquiera se inició y, por lo tanto, el cliente podría no haber recibido ningún certificado y, por lo tanto, no puede ser un problema con la validación de certificados.

De hecho, errno 104 es ECONNRESET. Esto significa que o bien el servidor cerró la conexión debido a problemas con la configuración o que el servidor ni siquiera se inició o que hay algún firewall entre el acceso de bloqueo del cliente y el servidor. Dado que el ECONNRESET se produce antes de que se envíen los datos, sugeriría que el protocolo de enlace TCP ya haya fallado, ya sea porque el servidor no se inició o un firewall.

    
respondido por el Steffen Ullrich 25.04.2017 - 18:16
fuente

Lea otras preguntas en las etiquetas