Open albfernandez opened 1 year ago
Relacionado (y posiblemente solución) #265
He investigado algo más el tema. En la instalación de autofirma de windows, el valor jdk.tls.disabledAlgorithms
jdk.tls.disabledAlgorithms=SSLv3, RC4, DES, MD5withRSA, DH keySize < 1024, \
EC keySize < 224, 3DES_EDE_CBC, anon, NULL
Con esta configuración y autofirma actual, java ofrece TLS1.2 y funciona correctamente.
En las versiones de Linux actualmente la cadena es la siguiente (Debian y Ubuntu, en otras será similar)
jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, \
DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \
include jdk.disabled.namedCurves
Con esta configuración, usando "TLSv1" java no ofrece ninguna opción de conexión. Si añadimos a la lista para desactivar TLSv1.3, entonces ofrece la 1.2 que si funciona. Si eliminamos TLSv1 y TLSv1.1 se comporta igual que Windows y ofrece 1.2
Si cambiamos la configuración propuesta en código java, SSLCONTEXT = "TLSv1.2" entonces ofrece la 1.3 y también funciona correctamente (al menos en las últimas versiones de los navegadores)
Creo que autofirma no debería depender de la configuración global de java.
Resumen: confirmo que el cambio propuesto soluciona, sin configuración adicional de los parámetros de java, el problema de conexión por sockets indicado en aquí y también el de #265
Hago Pull Request
https://github.com/ctt-gob-es/clienteafirma/blob/e881f67457a10a6e43ec912e8353af6bde006548/afirma-simple/src/main/java/es/gob/afirma/standalone/protocol/SecureSocketUtils.java#L27
Se está indicando que use TLSv1 y aparentemente está usando TLS v1.3 en Linux y está dando errores al conectarse desde los navegadores en Linux. Una opción es desactivar TLS 1.3 en java como se indica en #265, pero es preferible que autofirma lo establezcla expresamente.
En windows no está dando este problema.
En cualquier caso creo que sería lo correcto indicar aquí
Otra opción es establecer ese parámetro dependiendo del sistema operativo, dejando en windows su valor actual y usando "TLSV1.2" en Linux.