De: Factura TI
Fecha: martes 17 marzo de 2020 a las 16:18
Asunto: Comunicado para desarrolladores de soluciones de facturación electrónica
Comunicado para desarrolladores de soluciones de facturación electrónica
Se les comunica que el Ministerio de Hacienda se encuentra realizando acciones para que sus sistemas sean compatibles para la seguridad de capa de transporte (TLS) versión 1.2 o superior.
Asimismo, se estarán deshabilitando las versiones 1.0 y 1.1 del protocolo TLS para el sistema Validador Comprobantes Electrónicos a partir del 26 de marzo del 2020. Lo anterior, con el fin de subsanar los riesgos de seguridad con los que cuentan estas versiones.
Se insta a los desarrolladores de sistemas de facturación a realizar los ajustes necesarios en sus aplicativos antes de la fecha indicada y así evitar inconvenientes para el envío de comprobantes.
Cabe resaltar que el ambiente de pruebas api2.comprobanteselectronicos.go.cr ya cuenta con un certificado digital que únicamente permite el uso del protocolo TLS 1.2 y con el cual pueden hacer uso desde el día de hoy.
Se recuerda a los usuarios que es un ambiente de pruebas y los datos no son los mismos de producción. Asimismo, se estará deshabilitando las versiones 1.0 y 1.1 del protocolo TLS para el sistema Validador Comprobantes Electrónicos, a partir del 26 de marzo del 2020. Esto con el fin de subsanar riesgos.
También, se les solicita a aquellos que tienen alguna situación o problema pendiente de atención en cuanto a temas de tecnología, que remitan el reporte mediante al correo electrónico a FacturaTi@hacienda.go.cr , esto con el objetivo de poder analizarlo y brindar respuesta según corresponda.
URL de API2 de comprobantes electrónicos:
PRUEBAS2:
APIRestURL:
https://api2.comprobanteselectronicos.go.cr/recepcion-sandbox/v1/
APIRestURLToken:
https://idp.comprobanteselectronicos.go.cr/auth/realms/rut-stag/protocol/openid-connect/token
APIRestURLRevocacionToken:
https://idp.comprobanteselectronicos.go.cr/auth/realms/rut-stag/protocol/openid-connect/logout
APIRestIDCliente:
api-stag
Eladio, tus dudas no se pueden resolver sin conocer el lenguaje de programación, frameworks y herramientas que usas.
Hay lenguajes de programación que no dependen directamente de las librerías que ofrece el sistema operativo para realizar las comunicaciones, en tal caso no es necesario actualizar el sistema operativo, pero sí es necesario verificar que las librerías que se usan pueden trabajar con TLS 1.2. Un ejemplo de esas librerías sería SecureBlackbox.
Cuando se usa WinHTTP o Internet Information Server tal vez sí sea necesario actualizar el servidor o verificar que se pueda usar TLS 1.2.
Cuando se usa NET Framework depende de la versión que use, podría soportar TLS 1.2 y sería tan simple como agregar una sola línea de código.
Si usa cURL puede que todo esté actualizado, pero en servidores muy antiguos puede que tenga que actualizar el servidor o solo actualizar OpenSSL.
En JavaScript la mayoría de Frameworks debería usar de forma predeterminada o soportar TLS 1.2.
API2 solo tiene habilitado TLS 1.2 para que pueda probar si le funciona correctamente su software.
Yo diría que el 26 de febrero de 2020 lo que hicieron fue habitar TLS 1.3 y deshabilitar TLS 1.0 y TLS 1.1 y cuando se dio el reclamo porque algunos sistemas no soportaban TLS 1.2, lo que hicieron fue volver a habilitar TLS 1.0 y TLS 1.1.
===============================================
El 26 de marzo van a volver a deshabilitar TLS 1.0 y TLS 1.1, por lo tanto, API2 es para que prueben con esas versiones ya deshabilitadas, aunque solo tenga TLS 1.2 habilitada esa versión es la que va a usar la mayoría, porque algunas librerías aún no soportan TLS 1.3
===============================================
Hoy 19 de marzo de 2020 está así:
idp.comprobanteselectronicos.go.cr
Protocols
TLS 1.3 Yes
TLS 1.2 Yes
TLS 1.1 Yes
TLS 1.0 Yes
SSL 3 No
SSL 2 No
Fuente: https://www.ssllabs.com/ssltest/analyze.html?d=idp.comprobanteselectronicos.go.cr
===============================================
api.comprobanteselectronicos.go.cr
Protocols
TLS 1.3 Yes
TLS 1.2 Yes
TLS 1.1 Yes
TLS 1.0 Yes
SSL 3 No
SSL 2 No
Fuente: https://www.ssllabs.com/ssltest/analyze.html?d=api.comprobanteselectronicos.go.cr
===============================================
api2.comprobanteselectronicos.go.cr
Protocols
TLS 1.3 No
TLS 1.2 Yes
TLS 1.1 No
TLS 1.0 No
SSL 3 No
SSL 2 No
Fuente: https://www.ssllabs.com/ssltest/analyze.html?d=api2.comprobanteselectronicos.go.cr
Yo actualicé mi sIstema operativo a TSL 1.2…
Pero no entiendo que debo hacer con este texto
URL de API2 de comprobantes electrónicos:
PRUEBAS2:
APIRestURL:
https://api2.comprobanteselectronicos.go.cr/recepcion-sandbox/v1/
APIRestURLToken:
https://idp.comprobanteselectronicos.go.cr/auth/realms/rut-stag/protocol/openid-connect/token
APIRestURLRevocacionToken:
https://idp.comprobanteselectronicos.go.cr/auth/realms/rut-stag/protocol/openid-connect/logout
APIRestIDCliente:
api-stag
Debo modificar mi codigo desarrollado en el C# ?
Yo actualicé mi sistema operativo a TSL 1.2…
Pero no entiendo que debo hacer con este texto
URL de API2 de comprobantes electrónicos:
PRUEBAS2:
APIRestURL:
https://api2.comprobanteselectronicos.go.cr/recepcion-sandbox/v1/
APIRestURLToken:
https://idp.comprobanteselectronicos.go.cr/auth/realms/rut-stag/protocol/openid-connect/token
APIRestURLRevocacionToken:
https://idp.comprobanteselectronicos.go.cr/auth/realms/rut-stag/protocol/openid-connect/logout
APIRestIDCliente:
api-stag
Debo modificar mi codigo desarrollado en el C# ?
En C# podría tener algo similar a esto:
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls10;
Y usar API2 que solo tiene habilitado TLS 1.2 para verificar que su código funciona correctamente, en caso contrario podría tener que actualizar el Framework si tiene una versión muy antigua.
Disculpen mi ignorancia, será que además de actualizar el sistema operativo para que soporte tls 1.2 es necesario hacer algún cambio en la aplicación para que soporte tls 1.2?
Porque la url va a seguir siendo la misma, lo que van a cambiar es el soporte a los protocolos, pero no me queda claro si las aplicaciones requerirán algún cambio.
Saludos y desde ya gracias por su valiosa ayuda.
Eladio Madrigal