Uso de certificados AFIP para web services
El certificado digital es un archivo que se genera por cada empresa que va a facturar y se usa para dar fe que quien hace la factura es quien dice ser. La generación del mismo requiere acceso con la clave fiscal de la empresa así que eso es garantía de que nadie puede hacerse pasar por otro a la hora de emitir una factura electrónica. Todo certificado digital requiere de una clave privada para trabajar en conjunto y esta esta asociada a su propio certificado. La tramitación de certificados siempre se refiera a la empresa que va a facturar, no al programador. Se puede realizar en la maquina del programador y luego distribuirla por distintas maquinas del cliente. No se necesita instalar el certificado en windows, solo basta con reverenciarlo en el código en el método login. Para hacer la generación se deben ejecutar los siguientes pasos:
1 – Descargar OpenSSL
https://slproweb.com/products/Win32OpenSSL.html
Esta herramienta solo se usara para generar los archivos necesarios durante el proceso, se usará solo en la maquina del programador. Una vez hecha la generación de los archivos no se requiere instalar OPENSSL en las computadoras que usan FEAFIP puesto que FEAFIP no necesita de OPENSSL para trabajar. FEAFIP utiliza algunos archivos de OPENSSL que ya vienen en el paquete pero son solo para uso interno y no sirven para hacer el proceso de generación de certificados. Los certificados y claves pueden copiarse en varias maquinas y puntos de venta, solo se requiere generar un certificado por CUIT.
2 – Una vez instalado OPENSSL nos dirigimos a la carpeta “bin” y ahi comenzamos el proceso que consta de los siguientes pasos
– Si ejecuta openssl en Windows debe sestear una variable de entorno para que funcione correctamente.
set OPENSSL_CONF=[RUTA AL DIRECTORIO BIN DE OPENSSL]\openssl.cfg
– Generar el archivo privada con el siguiente comando
openssl genrsa -out privada 2048
– Copiar privada como clave.key (no renombrar sino hacer una copia).
– Generar el archivo csr. Sirve solo como archivo temporal para solicitarle a la AFIP un certificado. El mismo, una vez obtenido el certificado se puede descartar.
openssl req -new -key privada -subj “/C=AR/O=subj_o/CN=subj_cn/serialNumber=CUIT subj_cuit” -out pedido
Reemplace los siguientes parámetros del comando pos los valores
subj_o = Nombre de Empresa que va a emitir las facturas
subj_cn = Un alias cualquiera
subj_cuit = CUIT de la Empresa que va a emitir las facturas
3 – Una vez generado el archivo “pedido” se procede a subirlo a la pagina de AFIP y con el se descarga el certificado. Para gestionarlo se usa el Administrador de Certificados Digitales. Si el menú no existe se debe agregar mediante el Administrador de Relaciones de Clave Fiscal.
4 – Luego de haberlo generado y descargado el certificado procedemos a habilitar el web service. El siguiente video muestra como hacerlo.
5 – Finalmente los archivos clave.key (la copia creada anteriormente) y el certificado descargado son los que vamos a referenciar en nuestro código en el método “login”. Podemos renombrarlos siempre que el código se refiera a ellos por el nombre correcto. En el método “login” los parámetros se refieren a nombres de archivos por lo tanto se puede especificar un path, en caso de no existir path se toma por defecto el de la dll registrada.