Siguiendo mi solución de problemas para realizar una conexión TLS (consulte: Probando TLS con openssl ), parece que podría haber un firewall activo en su lugar.
-
La conexión en ese puerto funciona con nc en ambos lados (
nc -l -p 8883
en el servidor,nc server.com 8883
en el cliente) -
Incluso funciona si envío manualmente el preámbulo binario para establecer una conexión TLS, pero omito el último byte (nuevamente, capturado con
nc -l -p 8883 | xxd
). Creo que veo un retraso ... -
Solo en caso de que también verifiqué si la conexión se está forzando a cerrar a 289 bytes, por lo que envié una gran cantidad de texto al azar y fue bien.
-
Al enviar los resultados del preámbulo TLS completo a no se recibió nada en el servidor, y se cerró la conexión . Intenté agregar un poco de retraso antes del último byte, pasa y la conexión permanece abierta.
¿Qué diablos es esto y cómo expreso mi solicitud a la empresa de TI para permitirlo? (tenemos un APN especial configurado con AT & T y creo que ahí es donde está)
Detalles de resolución de problemas:
Usé nc -l -p 8883 para capturar el preámbulo TLS de un intento de conexión exitosa al servidor desde otro lugar (289 bytes)
0000000: 1603 0101 1c01 0001 1803 03f4 f363 0180
0000010: 3ce4 957f ee17 8b7f d8ef 9ce0 e608 1cac
0000020: d328 798d 8b10 cc7b b521 0....
...
0000120: 01
Entonces aquí está el comando del cliente para reproducirlo:
(head TLS1.hex -n18 | xxd -r; sleep 0.3; echo 0: 01 | xxd -r )
| nc server.com 8883 -q 1
- < 0.3s, falla
- = 0.3s falla intermitentemente
- > 0.3s, tiene éxito