Descarga de certificados desde el SAT🔗
Es necesario descargar los certificados de los PAC para poder validar el atributo SelloCFDI del nodo tfd:TimbreFiscalDigital porque no viene incluido en la estructura.
Para poderlos descargar se contacta al servidor del SAT https://rdc.sat.gob.mx/.
Conectividad por certificados locales no encontrados🔗
En algún momento de agosto o septiembre de 2020 el servicio en rdc.sat.gob.mx que delega la conexión a alguno de al menos cuatro servidores: CL-vordel01, CL-vordel02, CL-vordel03 y CL-vordel04, comenzó a fallar con el siguiente error: SSL certificate problem: unable to get local issuer certificate.
Esto no ocurre con CL-vordel02, CL-vordel03 ni CL-vordel04, lo que significa que solo está presente en la delegación a CL-vordel01.
El error parece estar relacionado en cómo CL-vordel01 está configurado, al ser cuatro servidores y (aparentemente) la asignación del servidor ocurre de forma aleatoria, entonces está fallando 25% de las veces.
La mejor solución es reintentar la descarga del certificado, otra solución podría ser desactivar la seguridad de certificados pero no se recomienda.
Conectividad por seguridad TLS🔗
2019-07-18: Al parecer el problema descrito a continuación está resuelto.
En algún momento a inicios de 2020 el servicio web en https://rdc.sat.gob.mx/ falla al establecer la comunicación. Después de depurar el problema, parece que el servidor web que responde en rdc.sat.gob.mx delega la conexión a alguno de al menos cuatro servidores: CL-vordel01, CL-vordel02, CL-vordel03 y CL-vordel04. Y sucede que algunos de estos servidores no tienen correctamente activada la seguridad TLS.
Según la siguiente prueba de concepto:
# success rate: 100%
curl --tls-max 1.0 --tlsv1.0 -s -o /dev/null https://rdc.sat.gob.mx/rccf/000010/000004/06/25/80/00001000000406258094.cer
# success rate: 40%
curl --tls-max 1.1 --tlsv1.1 -s -o /dev/null https://rdc.sat.gob.mx/rccf/000010/000004/06/25/80/00001000000406258094.cer
# success rate: 56%
curl --tls-max 1.2 --tlsv1.2 -s -o /dev/null https://rdc.sat.gob.mx/rccf/000010/000004/06/25/80/00001000000406258094.cer
# success rate: 0%
curl --tls-max 1.3 --tlsv1.3 -s -o /dev/null https://rdc.sat.gob.mx/rccf/000010/000004/06/25/80/00001000000406258094.cer
# success rate: 58%
curl --tls-max 1.2 -s -o /dev/null https://rdc.sat.gob.mx/rccf/000010/000004/06/25/80/00001000000406258094.cer
Podemos sacar algunas conclusiones:
- Solo la seguridad TLSv1.0 entrega resultados positivos. TLSv1.0 está deprecado desde 2008.
- No tienen activa la seguridad TLSv1.3, que es la recomendada desde 2020.
- Al depurar la comunicación, degradar desde TLSv1.3 o TLSv1.2 a veces lleva a el error
error:1425F102:SSL routines:ssl_choose_client_version:unsupported protocol. - Los servidores que no reportan el error anterior y permiten la degradación son
CL-vordel03yCL-vordel04. - Podemos suponer entonces que
CL-vordel01yCL-vordel02tienen problemas de configuración.
En resumen, el SAT no tiene correctamente configurado este servicio y está generando problemas para obtener certificados y comprobar las firmas de los Timbres Fiscales Digitales.
Una posible solución podría ser reintentar por al menos 6 veces obtener el certificado en caso de que requiera descargar desde https://rdc.sat.gob.mx/. Otra posible solución sería forzar a TLSv1.0 pero no lo recomiendo.
Problemas de caducidad de certificados🔗
2019-10-24: Al parecer el problema descrito a continuación está resuelto.
El problema es que a partir de 2018-09-12 en el servidor rdc.sat.gob.mx el servidor web retorna certificados para el protocolo https vigentes y expirados:
- Expirado:
4D:CE:6C:8E:0D:C6:4C:E3vigente hasta2018-09-22 16:07:04 GMT - Vigente:
00:A7:06:AA:42:44:4E:E4:E9:00:00:00:00:58:08:91:5Bvigente hasta2020-09-12 16:41:28 GMT
No hay una tendencia, de una muestra de 10,000 descargas realizada el 2018-10-17 17:30 GMT-5 el resultado fue incorrectas 2,853 (28.53%) y correctas 7,147 (71.47%) por lo que la posibilidad de obtener un certificado incorrecto es cercana al 30%.
Como resultado, la conexión segura al servidor no se puede establecer y esto generará que falle el proceso de descarga del certificado.
Personalmente no recomiendo desabilitar la seguridad del protocolo HTTPS, pero es una posible solución.