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