reingart / pyafipws

Factura Electrónica AFIP y otros servicios web (proyecto software libre) — Interfases, tools and apps for Argentina's gov't. webservices (soap, com/dll simil-ocx, pdf, dbf, xml, json, etc.) #python
http://www.sistemasagiles.com.ar/trac/wiki/ManualPyAfipWs
GNU Lesser General Public License v3.0
286 stars 224 forks source link

Generación automática de certificados #61

Open dantebarba opened 5 years ago

dantebarba commented 5 years ago

Estamos buscando una solución para la renovación automática de certificados, debido a que se vencen al año y es necesario renovarlos manualmente.

Quería saber si la librería lo permite, no logro encontrar la referencia en la documentación.

Gracias

reingart commented 5 years ago

Hola @dantebarba si, se puede automatizar la generación de CSR, ver: Métodos WSAA para Certificados

Por linea de comando, el ejemplo sería:

$ python wsaa.py --crear_pedido_cert 20267565393 MARIANO pyafipws
Encodign in UTF-8
Longitud clave 2048 (bits)
Se crearon los archivos:
clave_privada_20267565393_201903041858.key
pedido_cert_20267565393_201903041858.csr

La parte final debe hacerse por Clave Fiscal AFIP (subir el CSR y descargar el CRT firmado), lo que no se puede automatizar por ahora (facilmente, hay algunos workarounds para experimentar...)

Una vez obtenido el CRT, se puede analizar para verificar la fecha de vencimiento (atributo wsaa.Caducidad):

Por linea de comando, el ejemplo sería:

$ python wsaa.py --analizar reingart.crt
Encodign in UTF-8
Usando CRT=reingart.crt KEY=reingart.key URL=https://wsaahomo.afip.gov.ar/ws/services/LoginCms SERVICE=wsfe TTL=36000
WSAA Version 2.11c  False
CN=reingart2017/serialNumber=CUIT 20267565393
2019-07-13 15:24:35+00:00
CN=Computadores Test, O=AFIP, C=AR
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 1038432389097065538 (0xe6940c18b640c42)
    Signature Algorithm: sha512WithRSAEncryption
        Issuer: CN=Computadores Test, O=AFIP, C=AR
        Validity
            Not Before: Jul 13 15:24:35 2017 GMT
            Not After : Jul 13 15:24:35 2019 GMT
        Subject: CN=reingart2017/serialNumber=CUIT 20267565393
...

NOTA: no es obligatorio llamar al script por linea de comando; todos los métodos son accesibles desde Python (u otros lenguajes) de manera "programática"

reingart commented 5 years ago

Como ejercicio inicial para el GSoC se podría:

dantebarba commented 5 years ago
"La parte final debe hacerse por Clave Fiscal AFIP (subir el CSR y descargar el CRT firmado), lo que   no se puede automatizar por ahora (facilmente, hay algunos workarounds para experimentar...)"

Esta parte es justamente la que necesitaríamos automatizar, ¿Cuales serían esos workarounds experimentales que mencionas?. Se me ocurrió parsear la pagina usando BeautifulSoup pero veo complicado realizar todo el camino de login hasta llegar a la pantalla.