Page 1 of 1

Intercambio de mensajes con la AEAT Agencia Tributaria

Posted: Wed Mar 20, 2019 2:02 pm
by Verhoven
Buenas tardes,
estamos adaptando el sistema informatico utilizando al entorno de pruebas de la AEAT para poder hacer intercambio de mensajes xml .
Intentamos utilizar CURL.EXE que lo trae el propio Windows 10.
Como CURL.EXE parece ser que no maneja los certificados pfx.p12 emitidos por la FNMT (Fabrica Nacional de Moneda y Timbre) los pasamos a dos ficheros pem, uno con el certificado y otro con la clave privada con openssl.exe:

Desde el símbolo de sistema:

Code: Select all

C:\openssl-1.1.1-win64-mingw\openssl pkcs12 -in ./CertificadoFNMT.pfx.p12 -out ./CertificadoFNMT.pem -clcerts -nokeys
C:\openssl-1.1.1-win64-mingw\openssl pkcs12 -in CertificadoFNMT.pfx.p12 -out CertificadoFNMT_key.pem -nocerts -nodes
 
Con eso se generan los ficheros en formato PEM para utilizar con curl.exe; uno es CertificadoFNMT.pem (el certificado) y el otro CertificadoFNMT_key.pem (la clave).

Después para por ejemplo tratar de comprobar un CIF/NIF utilizamos la llamada a CURL.EXE siguiente:

Code: Select all

curl.exe --connect-timeout 60 -m 60 -S -L -d "@EnvioNif.xml" -o RespuestaNif.xml --cert ./CertificadoFNMT.pem --key ./CertificadoFNMT_key.pem https://www1.agenciatributaria.gob.es/wlpl/BURT-JDIT/ws/VNifV2SOAP --trace ./RespuestaTrace.txt --pass CALVEEXPORTACIONCERTIFICADO


Siendo el xml para la consulta del NIF: EnvioNif.xml

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:vnif="http://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/burt/jdit/ws/VNifV2Ent.xsd">
<soapenv:Header/>
    <soapenv:Body>
    <vnif:VNifV2Ent>
       <vnif:Contribuyente>
        <vnif:Nif>99999999R</vnif:Nif>
        <vnif:Nombre>JUAN MANUEL ESPAÑOL</vnif:Nombre>
       </vnif:Contribuyente>
    </vnif:VNifV2Ent>
    </soapenv:Body>
</soapenv:Envelope>
Y la respuesta de la AEAT es como que el certificado de la FNMT tuviera algún fallo. Pero hemos comprobado que el certificado es correcto, eso si, en el formato pfx.p12 original antes de pasarlo por el openssl para generar los archivos .pem

Fallo devuelto por la AEAT:
Error 401 No autorizado. Se ha producido un error al verificar el certificado presentado. Las causas más probables de este error son:
El certificado no ha sido firmado por una autoridad reconocida.
El tipo de certificado no es válido para el servicio al que se quiere acceder.
El certificado ha expirado.


Pero ninguno de los tres casos son la causa del posible error.

Les ruego me ayuden porque ya no se qué más pruebas hacer para poderlo echar a andar.

De antemano gracias.

Cordiales Saludos.

Re: Intercambio de mensajes con la AEAT Agencia Tributaria

Posted: Wed Mar 20, 2019 2:35 pm
by hmpaquito
Añade -k a la línea de comandos.

Re: Intercambio de mensajes con la AEAT Agencia Tributaria

Posted: Wed Mar 20, 2019 2:56 pm
by Verhoven
Añado -k pero la AEAT sigue devolviendo el mismo error:

Se ha producido un error:

401

No autorizado. Se ha producido un error al verificar el certificado presentado. Las causas más probables de este error son:
- El certificado no ha sido firmado por una autoridad reconocida.
- El tipo de certificado no es válido para el servicio al que se quiere acceder.
- El certificado ha expirado.


Esta es la nueva instrucción con CURL.EXE:

Code: Select all

curl.exe --connect-timeout 60 -m 60 -S -L -k -d "@EnvioNif.xml" -o RespuestaNif.html --cert ./CertificadoFNMT.pem:"CLAVEDELCERTIF" --key ./CertificadoFNMT_key.pem https://www1.agenciatributaria.gob.es/wlpl/BURT-JDIT/ws/VNifV2SOAP --trace ./RespuestaTrace.txt

Re: Intercambio de mensajes con la AEAT Agencia Tributaria

Posted: Wed Mar 20, 2019 3:00 pm
by hmpaquito
¿ Tienes un certificado puesto en el navegador ?

Re: Intercambio de mensajes con la AEAT Agencia Tributaria

Posted: Wed Mar 20, 2019 3:15 pm
by Verhoven
Si. Tengo varios.
Pero no entiendo que tienen que ver los certificados instalados en el navegador con CURL.EXE que en la línea de comandos lleva la referencia la archivo con el certificado a utilizar.

Re: Intercambio de mensajes con la AEAT Agencia Tributaria

Posted: Wed Mar 20, 2019 3:25 pm
by hmpaquito

Re: Intercambio de mensajes con la AEAT Agencia Tributaria

Posted: Wed Mar 20, 2019 4:17 pm
by Verhoven
Muchas gracias por las indicaciones.

Instalando el certificado en el Sisitema operativo ya ha funcionado.

Estaba instalado en el navegador, tengo mozilla, pero por lo visto hay que instalarlo en el sistema operativo también.

Lo que no entiendo es para qué entonces el referir el fichero con el certificado en formato pem en la línea de comandos del CURL.EXE.

Por cierto, ahora antes de procesar la orden, y a pesar de poner la clave del certificado en la línea de comandos, salta una pantalla en windows que dice:

"Seguridad de Windows"
Credenciales requeridas
¿Desea permitir que la aplicación acceda a su clave privada?


Se pulsa permitir y ejecuta la línea de comandos y la consulta a la AEAT correctamente.

Pero digo yo, si en la línea de comandos le he pasado la clave privada ¿para qué c... vuelve a pedir autorización?.

En fin, voy a ver cual es la manera de eliminar esta pregunta de seguridad de windows para poder automatizar el proceso del todo.