Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Errores (relacionados con al AEAT) (https://www.clubdelphi.com/foros/forumdisplay.php?f=78)
-   -   Windows 7 y TLS 1.2 (https://www.clubdelphi.com/foros/showthread.php?t=97823)

Noe277 04-11-2025 13:33:19

Windows 7 y TLS 1.2
 
Buenas, Tenemos un cliente con windows 7 y nos da el siguiente error en producción.

Cita:

No se pudo establecer un canal seguro para SSL/TLS con la autoridad 'www10.agenciatributaria.gob.es'.
Server stack trace:
en System.ServiceModel.Channels.HttpChannelUtilities.ProcessGetResponseWebException(WebException webException, HttpWebRequest request, HttpAbortReason abortReason)
en System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelRequest.WaitForReply (TimeSpan timeout)
en System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)
en System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout)
en System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
en System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
en System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]:
en System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
en System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
en EvoVeri.Verifactu.sfPortTypeVerifactu.RegFactuSistemaFacturacion(RegFactuSistemaFacturacionRequest request)
en EvoVeri.Verifactu.sfPortTypeVerifactuClient.EvoVeri.Verifactu.sfPortTypeVerifactu.RegFactuSistemaFac turacion(RegFactuSistemaFacturacionRequest request)
en EvoVeri.Verifactu.sfPortTypeVerifactuClient.RegFactuSistemaFacturacion(RegFactuSistemaFacturacion RegFactuSistemaFacturacion1)
en WontaPlus.Clases.SistemaVerifactu.envio.GenerarEnvio(String rutaBD, String codEmpresa, String identificadorEquipo, String licencia, Boolean modoPruebas)

🔍 Inner Exception:
System.Net.WebException: Anulada la solicitud: No se puede crear un canal seguro SSL/TLS.
en System.Net.HttpWebRequest.GetResponse()
en System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelRequest.WaitForReply (TimeSpan timeout)
Hemos probado en pruebas y manda bien.
En el código estamos forzando el TlS a 1.2 y ya hemos deducido que es de ese equipo.
Hemos intentado meter todas las actualizaciones de windows pero sigue igual.

¿Alguna idea ?

Faneka 04-11-2025 13:56:46

Nosotros estamos comunicando a los clientes que el equipo que mande tiene que tener W10 o superior, algún tipo de error como ese nos dio no hace unos meses con el SII y no supimos/pudimos solucionarlo, así que nuestra solución es que salten al SO superior que si funciona, igual pasa con los Server, en el 2012 no funciona, en el 2016 ya no me acuerdo, lo que si se que del 2019 en adelante funciona el envio.

ermendalenda 04-11-2025 13:58:19

Cita:

Empezado por Noe277 (Mensaje 569378)
Buenas, Tenemos un cliente con windows 7 y nos da el siguiente error en producción.



Hemos probado en pruebas y manda bien.
En el código estamos forzando el TlS a 1.2 y ya hemos deducido que es de ese equipo.
Hemos intentado meter todas las actualizaciones de windows pero sigue igual.

¿Alguna idea ?

Si tienes antivirus revisa que no tenga los filtros tsl/ssl activado(kaspersky los tiene)

En las opciones de internet explorer, croe que era la ultima pestaña , activa los protcolos tsl 1.1 y 1.2
Tambien hay una actualizacion de w7 para activarla si nl vienen.

Faneka 04-11-2025 14:03:17

Si funciona avisa por favor, yo creo que estuve mirando y no hubo manera de que un W7 funcionara.

Jarogo08 04-11-2025 15:00:18

Nosotros, al igual que Faneka, estamos migrando todos los windows servers 2012 o anterior, y windows 7/8

No fuimos capaces de hacer que funcionara en ellos

pablog2k 04-11-2025 15:11:53

esto ya pasó en w7 con el sii, es una cosa de los servidores de hacienda que a partir de X fecha ya no permite ese tipo de peticiones.
en el hilo del SII está explicado.
Nosotros tuvimos que hacer migraciones exprés a W10 para que el cliente pudiera seguir haciendo envíos :eek:

chenech 04-11-2025 15:28:45

Hay un parche que puse yo en un equipo con Windows 7 para el SII y me deja enviar, no lo he probado con VERIFACTU, pero deberia funcionar.
La información está aqui:
https://support.microsoft.com/es-es/...0392#bkmk_easy
Y la URL de descarga:
https://catalog.update.microsoft.com...px?q=kb3140245

jakematespain 04-11-2025 15:56:56

Hola, nosotros lo hemos lo hicimos funcionar accediendo al certificado por fichero, no usando el almacen de windows.
Pero siguiendo estas indicaciones:
https://visionwin.freshdesk.com/supp...ndows-7-y-aeat

Parches para server 2008,enbeed 8, server 2008, embbed 8, server 20202 ,windows 7
https://www.catalog.update.microsoft...px?q=kb3140245

Una vez instalado el parche y el Fixit para windows 7, hay que comprobar si está activado el TLS 1.2. Entrando en panel de control, opciones de internet,
opciones avanzadas ver si aparece el TLS 1.2 y activarlo

Espero que os sirva.

ermendalenda 04-11-2025 15:59:03

Esto me paso a mi con los tpvpc y al final el tema pasaba por los certificados de conexiin a redsys que las nuevas imolementaciones de seguridad no son validas para windows 7.
Puedes probar tambien a que ponerle la opcion de curl que no verifiquw los certificados(mas inseguro).

Rja750 04-11-2025 18:50:41

Yo estoy aprovechando y estoy diciendo a mis clientes que la version minima de SO es Windows 10. No me complico. Puede dar mas de un dolor de cabeza tener el windows 7. Sobre todo si envías con Curl que en windows 7 tienes que instalarlo y añadirlo a las variables de entorno o si necesitas un FrameWork superior tener que ir instalando o añadiendo dependencias. Windows 10 y fin de la historia

newtron 04-11-2025 18:58:44

Yo igualmente no me complico la vida con W7. Al final todas esas ñapas son dolores de cabeza "de gratis" porque igual funcionan que igual no, echas horas y horas dando cabezazos y eso al final son costos que no repercutes al cliente.


Requerimientos W10 o superior y a volar.

Rja750 04-11-2025 19:08:01

Algunos de mis clientes usan el teléfono móvil como servidor de Red. Esto también lo estoy quitando. Estoy obligando a un router de banda ancha en condiciones. Vamos a aprovechar!! :D

newtron 04-11-2025 19:28:45

Cita:

Empezado por Rja750 (Mensaje 569398)
Algunos de mis clientes usan el teléfono móvil como servidor de Red. Esto también lo estoy quitando. Estoy obligando a un router de banda ancha en condiciones. Vamos a aprovechar!! :D


Maemía... ¿y no tienes ninguno que use una máquina de escribir de router? :D:D

Noe277 05-11-2025 11:47:42

Windows 7
 
Cita:

Empezado por chenech (Mensaje 569387)
Hay un parche que puse yo en un equipo con Windows 7 para el SII y me deja enviar, no lo he probado con VERIFACTU, pero deberia funcionar.
La información está aqui:
https://support.microsoft.com/es-es/...0392#bkmk_easy
Y la URL de descarga:
https://catalog.update.microsoft.com...px?q=kb3140245


Ya tenia ese parche instalado. En el registro aun así no aparecían los tls en channel pero se los creamos y nada.
Les diremos que se actualicen y maldigan a hacienda y no a nosotros por hacerles gastar mas dinero.

emailesc 09-11-2025 11:13:07

Cita:

Empezado por Noe277 (Mensaje 569437)
Ya tenia ese parche instalado. En el registro aun así no aparecían los tls en channel pero se los creamos y nada.
Les diremos que se actualicen y maldigan a hacienda y no a nosotros por hacerles gastar mas dinero.

Al menos en Windows Server 2012 no va a funcionar con Verifactu y la verificación de CIF/NIF, el motor Schannel no implementa AES-GCM (ni el set moderno de suites ECDHE+GCM), que son los que pide hacienda porque son muy especialitos. Puedes ordenar o quitar/poner cipher suites en el Registro, pero no puedes “instalar” algoritmos que el sistema no trae en la DLL. Por eso, aunque añadas TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, el cliente seguirá sin poder negociarla: Schannel la ignora porque no existe en 2012. Puedes instalar tls.1.2 y comunicar con cualquiera, pero no con hacienda que exige un algoritmo más moderno.

ermendalenda 09-11-2025 12:00:11

Cita:

Empezado por emailesc (Mensaje 569630)
Al menos en Windows Server 2012 no va a funcionar con Verifactu y la verificación de CIF/NIF, el motor Schannel no implementa AES-GCM (ni el set moderno de suites ECDHE+GCM), que son los que pide hacienda porque son muy especialitos. Puedes ordenar o quitar/poner cipher suites en el Registro, pero no puedes “instalar” algoritmos que el sistema no trae en la DLL. Por eso, aunque añadas TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, el cliente seguirá sin poder negociarla: Schannel la ignora porque no existe en 2012. Puedes instalar tls.1.2 y comunicar con cualquiera, pero no con hacienda que exige un algoritmo más moderno.

Con curl.exe y con el curl de php funciona hasta en windows xp, sin tantos requisitos.

ermendalenda 09-11-2025 19:08:55

Ok, acabo de buscar información de por que funciona en curl.exe, por que me habia acojonado:eek:, yo uso una versión de curl de hace unos años, que va en todas las versiones de windows desde XP y en Win32 y Win64 , podeis comprobar si vais a tener problemas, con el curl que teneis, ahora o en el futuro, supongo que si ahora no teneis problemas en el futuro tampoco, no creo que este aceptando conexiones que no sean a partir de de TSLv1.3, como comenta el compañero.
Para verificarlo he hecho lo siguiente, escribir desde la linea de comandos:
curl.exe -V
Me devuelve lo siguiente:
Cita:

curl 7.78.0 (i386-pc-win32) libcurl/7.78.0 OpenSSL/1.1.1k (Schannel) zlib/1.2.11
brotli/1.0.9 zstd/1.5.0 libidn2/2.3.2 libssh2/1.9.0 nghttp2/1.44.0 libgsasl/1.1
0.0
Release-Date: 2021-07-21
para saber si el curl se conecta correctamente a traves de la conexion TSL 1.3 o superior podeis ejecutar lo siguiente:
curl -v https://www2.agenciatributaria.gob.es
y devuelve ésto:
Cita:


* Trying xxxxxx():443...
* Connected to www2.agenciatributaria.gob.es (XXX.XX.XX.XX) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
* CAfile: Path...\curl-ca-bundle.crt
* CApath: none
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_128_GCM_SHA256 (Si os devuelve algo así o superior a TLSV1.3, perfecto)
* ALPN, server did not agree to a protocol (Esto no es nada grave)


¿Por qué funciona ésto desde windows XP, cuando windows xp solo llega a TSLv1.0?


Pues por que curl.exe está compilado con soporte dual: si el Sistema Operativo no tiene el soporte que necesita para la conexión Openssl, de esa compilación curl, toma el control y usa su cifrado, pasando del Sistema operativo. Y oye, funciona perfectamente con AES-GCM y OPENSSL(no Schannel)
Jeje. Lo mejor de los 2 mundos:
XP Viejo con seguridad 2025


BUFF Que alivio

Casimiro Noteví 09-11-2025 19:12:14

^\||/^\||/^\||/

josejava 09-11-2025 19:24:25

Yo lo que he hecho es que un ordenador encendido las 24 horas en mi casa reciba las facturas de las tiendas y desde mi casa las envíe directamente a la AEAT.

Así me quito dolores de cabeza de que si el cliente tiene windows XP o tiene un móvil.

Y si hay algún error me entero antes que nadie.

emailesc 09-11-2025 20:08:18

Cita:

Empezado por ermendalenda (Mensaje 569635)
Ok, acabo de buscar información de por que funciona en curl.exe, por que me habia acojonado:eek:, yo uso una versión de curl de hace unos años, que va en todas las versiones de windows desde XP y en Win32 y Win64 , podeis comprobar si vais a tener problemas, con el curl que teneis, ahora o en el futuro, supongo que si ahora no teneis problemas en el futuro tampoco, no creo que este aceptando conexiones que no sean a partir de de TSLv1.3, como comenta el compañero.
Para verificarlo he hecho lo siguiente, escribir desde la linea de comandos:
curl.exe -V
Me devuelve lo siguiente:


para saber si el curl se conecta correctamente a traves de la conexion TSL 1.3 o superior podeis ejecutar lo siguiente:
curl -v https://www2.agenciatributaria.gob.es
y devuelve ésto:



¿Por qué funciona ésto desde windows XP, cuando windows xp solo llega a TSLv1.0?


Pues por que curl.exe está compilado con soporte dual: si el Sistema Operativo no tiene el soporte que necesita para la conexión Openssl, de esa compilación curl, toma el control y usa su cifrado, pasando del Sistema operativo. Y oye, funciona perfectamente con AES-GCM y OPENSSL(no Schannel)
Jeje. Lo mejor de los 2 mundos:
XP Viejo con seguridad 2025


BUFF Que alivio

Sí, es cierto lo que dices. No obstante creo que esta configuración no accede a los certificados del almacén de certificados del equipo, los tienes que tener como archivo, ¿no?. Si es un equipo tuyo y controlado por ti puede ser una solución, pero para meterselo a un cliente por salvar el windows 7 yo no lo haría.


La franja horaria es GMT +2. Ahora son las 06:30:39.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi