Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Envío de registros y sus respuestas (https://www.clubdelphi.com/foros/forumdisplay.php?f=66)
-   -   Certificados no aceptados en la AEAT (https://www.clubdelphi.com/foros/showthread.php?t=97957)

austral_es 30-12-2025 10:39:20

Certificados no aceptados en la AEAT
 
Buenos días,

Tenemos un programa que está remitiendo correctamente en VeriFactu. Para realizar esta remisión usamos el evento

HTTPRio.HTTPWebNode.OnNeedClientCertificate

Dicho evento tiene el parámetro ACertificateList que nos devuelve la lista de los certificados válidos por el el Server de la AEAT instalados en el PC del cliente.

De ahí damos a elegir al usuario cual quiere usar (porque puede tener certificados propios, de entidad, etc) y hacemos la remisión.

Ahora bien, tenemos algunos clientes que han comprado certificados de entidad a la FNMT y a la hora de remitir no aparecen en el ACertificateList, es como si el servidor de la AEAT no los considerase como válidos y desconocemos el motivo ya que el servidor de la AEAT no rompe, simplemente no devuelve como válido pero desconocemos el motivo. Sabemos que los certificados de sello van a otra url distinta a los normales y eso ya lo tenemos en cuenta llamando a la url que corresponda dependiendo si el certificado es de sello o no.

Quizás venga en la respuesta del servidor pero no sepamos como obtener dicha información o quizás haya algún componente en Delphi que nos diga porque el servidor de la AEAT no admite cierto certificado.

¿A alguno os ha pasado este tipo de problemas con los certificados de vuestros clientes? en los que en teoría sean certificados válidos pero no sean admitidos?

Muchas gracias

ermendalenda 30-12-2025 13:01:23

Cita:

Empezado por austral_es (Mensaje 571570)
Buenos días,

Tenemos un programa que está remitiendo correctamente en VeriFactu. Para realizar esta remisión usamos el evento

HTTPRio.HTTPWebNode.OnNeedClientCertificate

Dicho evento tiene el parámetro ACertificateList que nos devuelve la lista de los certificados válidos por el el Server de la AEAT instalados en el PC del cliente.

De ahí damos a elegir al usuario cual quiere usar (porque puede tener certificados propios, de entidad, etc) y hacemos la remisión.

Ahora bien, tenemos algunos clientes que han comprado certificados de entidad a la FNMT y a la hora de remitir no aparecen en el ACertificateList, es como si el servidor de la AEAT no los considerase como válidos y desconocemos el motivo ya que el servidor de la AEAT no rompe, simplemente no devuelve como válido pero desconocemos el motivo. Sabemos que los certificados de sello van a otra url distinta a los normales y eso ya lo tenemos en cuenta llamando a la url que corresponda dependiendo si el certificado es de sello o no.

Quizás venga en la respuesta del servidor pero no sepamos como obtener dicha información o quizás haya algún componente en Delphi que nos diga porque el servidor de la AEAT no admite cierto certificado.

¿A alguno os ha pasado este tipo de problemas con los certificados de vuestros clientes? en los que en teoría sean certificados válidos pero no sean admitidos?

Muchas gracias

Son certificados normales o especiales?, tipo cloud, DNIe, Usb...esos van a dar problemas, prueba a exportarlos desde el almacen de certificados a ver si te genera un ptf/pt2 correcto

ermendalenda 30-12-2025 13:05:53

Cita:

Empezado por ermendalenda (Mensaje 571572)
Son certificados normales o especiales?, tipo cloud, DNIe, Usb...esos van a dar problemas, prueba a exportarlos desde el almacen de certificados a ver si te genera un ptf/pt2 correcto

Si no puedes comprobarlo con curl o con alguna herrmienta importalo en otro pc con la clave a ver que pasa.

austral_es 30-12-2025 14:08:14

Cita:

Empezado por ermendalenda (Mensaje 571572)
Son certificados normales o especiales?, tipo cloud, DNIe, Usb...esos van a dar problemas, prueba a exportarlos desde el almacen de certificados a ver si te genera un ptf/pt2 correcto

Es un certificado de sello de entidad emitido por la FNMT.

Lo único que he podido averiguar es que lo instaló sin la clave privada. Sin embargo, nosotros también tenemos un similar de sello de entidad y también lo instalamos sin clave privada y al intentar usarlo nos salta un error

12185: // ERROR_WINHTTP_CLIENT_CERT_NO_PRIVATE_KEY

pero al cliente no le salta este error a pesar tener el certificado instalado sin la clave privada.

ermendalenda 31-12-2025 06:36:20

Buenas, la CLAVE privada es necesaria para las conexiones, no creo que funcione ninguno sin esa clave, sospecho que el problema que puedas tener es en los permisos de usuarios, que al importarlas no lo hayas hecho para todos los usuarios del sistema.
Sí es así, y desde el usuario que tiene permisos sobre ella, puedes intentar agregarle más permisos:
certlm.msc
Personal> Certificados
Certificado > botón derecho
Todas las tareas > Administrar claves privadas
Añade el usuario/servicio que hace el logueo

ermendalenda 31-12-2025 08:07:06

Para las conexiones httpro usa el servicio winttp, puedes agregarlo:
Añade alguno de estos servicios que tienes que tenrr:
NT SERVICE\NombreServicio o NETWORK SERVICE o usuario de dominio
Permiso: Lectura


La franja horaria es GMT +2. Ahora son las 06:35:51.

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