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-vordel03
yCL-vordel04
. - Podemos suponer entonces que
CL-vordel01
yCL-vordel02
tienen 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:E3
vigente hasta2018-09-22 16:07:04 GMT
- Vigente:
00:A7:06:AA:42:44:4E:E4:E9:00:00:00:00:58:08:91:5B
vigente 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.