ws_sr_padron.py [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)

1,041 views
Skip to first unread message

fcoli...@gmail.com

unread,
Jan 19, 2018, 9:29:11 AM1/19/18
to PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT
Hola! cuando intento consultar un CUIT mediante ws_sr_padron.py me encuentro con este error.

$ python ws_sr_padron.py 30517576960

/var/www/clients/client1/web1/web/lib/facturae/utils.py:284: UserWarning: Corrigiendo WSDL ... http://aws.afip.gov.ar/sr-padron/webservices/personaServiceA4
  warnings.warn("Corrigiendo WSDL ... %s" % location)
Consultando AFIP online via webservice...
Traceback (most recent call last):
  File "ws_sr_padron.py", line 261, in <module>
    main()
  File "ws_sr_padron.py", line 224, in main
    ok = wssrpadron4.Consultar(id_persona)
  File "/var/www/clients/client1/web1/web/lib/facturae/utils.py", line 157, in capturar_errores_wrapper
    return func(self, *args, **kwargs)
  File "ws_sr_padron.py", line 105, in Consultar
    idPersona=id_persona,
  File "/usr/local/lib/python2.7/dist-packages/pysimplesoap/client.py", line 147, in <lambda>
    return lambda *args, **kwargs: self.wsdl_call(attr,*args,**kwargs)
  File "/usr/local/lib/python2.7/dist-packages/pysimplesoap/client.py", line 342, in wsdl_call
    response = self.call(method, *params)
  File "/usr/local/lib/python2.7/dist-packages/pysimplesoap/client.py", line 216, in call
    self.xml_response = self.send(method, self.xml_request)
  File "/usr/local/lib/python2.7/dist-packages/pysimplesoap/client.py", line 261, in send
    location, "POST", body=xml, headers=headers)
  File "/usr/lib/python2.7/dist-packages/httplib2/__init__.py", line 1592, in request
    (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey)
  File "/usr/lib/python2.7/dist-packages/httplib2/__init__.py", line 1334, in _request
    (response, content) = self._conn_request(conn, request_uri, method, body, headers)
  File "/usr/lib/python2.7/dist-packages/httplib2/__init__.py", line 1256, in _conn_request
    conn.connect()
  File "/usr/lib/python2.7/dist-packages/httplib2/__init__.py", line 1043, in connect
    raise SSLHandshakeError(e)
httplib2.SSLHandshakeError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)


Mi rece.ini

[WSAA]
CERT=certificado.crt
PRIVATEKEY=privada.key
CACERT=conf/afip_ca_info.crt
URL=https://wsaa.afip.gov.ar/ws/services/LoginCms

[WSFEv1]
CUIT=<micuit>
CAT_IVA=1
PTO_VTA=5
ENTRADA=factura.json
SALIDA=salida.json
URL=https://wswhomo.afip.gov.ar/wsfev1/service.asmx
XML=xml

[WS-SR-PADRON-A4]
CUIT=<micuit>
ENTRADA=entrada.txt
SALIDA=salida.txt
CACERT=/var/www/clients/client1/web1/web/lib/facturae/conf/afip_ca_info.crt
URL=https://aws.afip.gov.ar/sr-padron/webservices/personaServiceA4?wsdl


Otra cosa, que la verdad que no se porque se dara...  es que luego de crear  un entorno virtual:

virtualenv venv
source venv/bin/activate
pip install -r requirements.txt


Una vez dentro de este entorno virtual funciona perfectamente por lo que asumo que debe ser algun problema de librerias pero la verdad que no logro solucionarlo, se agradece cualquier cable!

Saludos


Fede Devas

unread,
Jan 19, 2018, 11:00:09 AM1/19/18
to PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT
Tengo el mismo problema .
Subi un tema hoy a la maniana con lo mismo (aun no lo publicaron).

Encuentro dos cosas
1- Cuando dice " Corrigiendo WSDL ... http://aws.afip.gov.ar/sr-padron/webservices/personaServiceA4" no se porque lo pone como http en vez de http (como esta en el rece.ini).
De todos modos es un error en el mensaje ya que el servicio lo consulta por https OK (http no atiende el servidor de afip).

Responde OK el servidor y el navegador toma al certificado como valido por lo tanto no es un error del cert de AFIP.

3- Intente en el file "conf/afip_ca_info.crt" actualizar con los datos de CA de GeoTrust sacados de:
Pero el problema no se resolvio.

Me quedo a leer si alguien tiene alguna solucion.

Yo consulto en realidad el Padron A5 en vez de A4 y me da el mismo error.

El resto de los WS por ejemplo el de factura funciona OK, solamente desactive la verificacion de CUIT.

Saludos,
Federico.

Fernando Coliguante

unread,
Jan 20, 2018, 11:58:08 AM1/20/18
to PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT
Logre dar con la solucion! tenia librerias desactualizadas, entonces al crear un entorno virtual e instalar todas las dependencias nuevamente se habia solucionado.. en definitiva la solucion llego con este comando:

$ pip install -r requirements.txt --upgrade 

es muy importante el --upgrade, ya que indica actualizar dichas librerias


El viernes, 19 de enero de 2018, 11:29:11 (UTC-3), fcoli...@gmail.com escribió:

Pablo Berra

unread,
Jan 21, 2018, 3:15:48 PM1/21/18
to PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT
Gracias Fernando.
La actualización resolvió el problema.

Andres Misiak

unread,
Jan 24, 2018, 9:23:57 AM1/24/18
to PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT
Hola todos:

El viernes tenía este problema y lo resolví con el --upgrade al igual que ustedes. Pero me resultó otro problema que no le estoy encontrando la vuelta, no me devuelve bien el campo de IVA y MT por lo que no puedo asignar correctamente la condición fiscal.

- Consultando con el --trace logro ver que la devolución de AFIP es correcta y entre todos los impuestos se encuentra el 30
- La devolución de pyafipws en el campo Impuestos es [211] (que es el último item dentro de la lista de impuestos en el XML) por lo que sospecho que el problema está en el parseo del XML
- Estuve viendo unos hilos de hace pocos meses por este problema y apuntan a la instalación de la librería pysimplesoap==1.08.14 pero cuando instalo dicha versión directamente deja de funcionar la consulta con el error _ssl_wrap_socket() takes exactly 5 arguments (7 given)
- Cuando vuelvo a instalar todo el requirements --upgrade me actualiza el pysimplesoap a la versión 1.08.9 y vuelve a devolver AFIP pero con el impuesto mal

¿Alguno resolvió este problema? ¿Qué versión de pysimplesoap tienen ustedes?

Saludos.
Andres Misiak
El viernes, 19 de enero de 2018, 11:29:11 (UTC-3), fcoli...@gmail.com escribió:

Mariano Reingart

unread,
Jan 24, 2018, 10:57:08 PM1/24/18
to pyaf...@googlegroups.com
Hola Andres:

Para padrón deberían instalar pysimplesoap 1.08.14 (biblioteca soap para webservices actualizada), en algunos equipos / situaciones las versiones antiguas pueden no funcionar correctamente.
Deben tener una versión desactualizada, en el requirements.txt esta la versión correcta:


El problema de _ssl_wrap_socket es posiblemente por una versión antigua de python o httplib2, también deberías instalar la última actualizada:

pip install httplib2 --upgrade

Si el problema persiste, deberías ver que versión de python están utilizando y cuantos parámetros tiene la función, por ejemplo: 

$ python
Python 2.7.12 (default, Jul  1 2016, 15:12:24) 
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import ssl
>>> help(ssl.wrap_socket)

wrap_socket(sock, keyfile=None, certfile=None, server_side=False, cert_reqs=0, ssl_version=2, ca_certs=None, do_handshake_on_connect=True, suppress_ragged_eofs=True, ciphers=None)

En todo caso, si tiene distinta cantidad de parámetros, pueden probar comentando (#) la linea en 107 en pysimplesoap/transport.py

    ## httplib2._ssl_wrap_socket = _ssl_wrap_socket

Hubo cambios en los SS.OO., Python y AFIP por estas cuestiones de protocolos de seguridad.
Estos temas son complejos de analizar por las distintas versiones de sistemas operativos, bibliotecas, etc. que pueden tener instalado en particular.
Si necesitan ofrecemos soporte comercial para verlo en detalle.

Sds

--
Proyecto PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT:
http://www.pyafipws.com.ar/ - http://www.github.com/reingart/pyafipws - http://www.sistemasagiles.com.ar/
---
Has recibido este mensaje porque estás suscrito al grupo "PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a pyafipws+unsubscribe@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a pyaf...@googlegroups.com.
Visita este grupo en https://groups.google.com/group/pyafipws.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Claudio Mucci

unread,
Jan 25, 2018, 8:59:14 AM1/25/18
to PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT
Buenos días, 

Vengo siguiendo todos los hilos, y también sigo sin poder consultar el padrón.

Dejo acá lo que me da por consola:

/usr/local/lib/python2.7/dist-packages/pysimplesoap/client.py:397: RuntimeWarning: version or url mismatch! discarding cached wsdl
  warnings
.warn('version or url mismatch! discarding cached wsdl', RuntimeWarning)

Traceback (most recent call last):

 
File "ws_sr_padron.py", line 246, in <module>
    main
()
 
File "ws_sr_padron.py", line 192, in main
    wssrpadron4
.Conectar(cache, url_wsa4, cacert="conf/afip_ca_info.crt")
 
File "/home/pyafipws/utils.py", line 276, in Conectar
    trace
= "--trace" in sys.argv)
 
File "/usr/local/lib/python2.7/dist-packages/pysimplesoap/client.py", line 140, in __init__
   
self.services = wsdl and self.wsdl_parse(wsdl, debug=trace, cache=cache)
 
File "/usr/local/lib/python2.7/dist-packages/pysimplesoap/client.py", line 469, in wsdl_parse
    xml
= fetch(url)
 
File "/usr/local/lib/python2.7/dist-packages/pysimplesoap/client.py", line 455, in fetch
    response
, xml = self.http.request(url, "GET", None, {})
 
File "/usr/local/lib/python2.7/dist-packages/httplib2/__init__.py", line 1609, in request
   
(response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey)
 
File "/usr/local/lib/python2.7/dist-packages/httplib2/__init__.py", line 1351, in _request
   
(response, content) = self._conn_request(conn, request_uri, method, body, headers)
 
File "/usr/local/lib/python2.7/dist-packages/pysimplesoap/transport.py", line 133, in _conn_request
   
return Httplib2Transport._conn_request(self, conn, request_uri, method, body, headers)
 
File "/usr/local/lib/python2.7/dist-packages/pysimplesoap/transport.py", line 117, in _conn_request
   
return httplib2.Http._conn_request(self, conn, request_uri, method, body, headers)
 
File "/usr/local/lib/python2.7/dist-packages/httplib2/__init__.py", line 1272, in _conn_request
    conn
.connect()
 
File "/usr/local/lib/python2.7/dist-packages/httplib2/__init__.py", line 1059, in connect
   
raise SSLHandshakeError(e)
httplib2
.SSLHandshakeError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:661)

Ideas y sugerencias son bienvenidas!!!!!!!
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a pyafipws+u...@googlegroups.com.

Mariano Reingart

unread,
Jan 25, 2018, 10:57:34 PM1/25/18
to pyaf...@googlegroups.com
Hola Claudio:

Sobre los errores SSL, en otro hilo comenté como hacer pruebas básicas para determinar estas cuestiones:


Igualmente en este caso parece ser que el SSL: CERTIFICATE_VERIFY_FAILED es porque AFIP "cambió" la autoridad certificante del servidor.
Al no ser una de las "Autoridades certificantes reconocidas por AFIP" (según listado en su documentación técnica), no valida el certificado.

Provisoriamente ya agregué la "nueva" autoridad certificante raiz en el commit 24be9004, pueden descargar el nuevo archivo desde el repositorio: 


Reemplazando ese archivo debería funcionar, pueden reportarlo para cerrar estos hilos.

Para más información ver:


Sds
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a pyafipws+unsubscribe@googlegroups.com.

Claudio Mucci

unread,
Jan 26, 2018, 6:24:49 AM1/26/18
to pyaf...@googlegroups.com
Buen día Mariano y grupo,

YESSSSSS, ahí salió funcionando. 
Instalé el nuevo certificado listo. 

Gracias!!!!

Claudio Mucci


De: pyaf...@googlegroups.com <pyaf...@googlegroups.com> en nombre de Mariano Reingart <rein...@gmail.com>
Enviado: viernes, 26 de enero de 2018 00:57
Para: pyaf...@googlegroups.com
Asunto: Re: [pyafipws] Re: ws_sr_padron.py [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)
 

Claudio Mucci

unread,
Jan 26, 2018, 6:40:11 AM1/26/18
to pyaf...@googlegroups.com
Hola Andrés, 
Yo lo resolví "capturando" el debug con una rutina de PHP. 
La puedo compartir con quien quiera, pero no sé si éste es el lugar indicado para subirla.  
Cualquier cosa me avisas. 
Saludos. 

Claudio Mucci


De: pyaf...@googlegroups.com <pyaf...@googlegroups.com> en nombre de Andres Misiak <andres...@gmail.com>
Enviado: miércoles, 24 de enero de 2018 11:23
Para: PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT
Asunto: [pyafipws] Re: ws_sr_padron.py [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)
 

Flavio V.

unread,
Jan 26, 2018, 1:23:17 PM1/26/18
to pyaf...@googlegroups.com
Perfecto, el nuevo certificado anduvo sin hacer ningún otro cambio en el sistema :)
Volvi atras el CACERT=None y todo volvio a funcionar como antes

Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a pyafipws+unsubscribe@googlegroups.com.

Para publicar en este grupo, envía un correo electrónico a pyaf...@googlegroups.com.
Visita este grupo en https://groups.google.com/group/pyafipws.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

--
Proyecto PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT:
http://www.pyafipws.com.ar/ - http://www.github.com/reingart/pyafipws - http://www.sistemasagiles.com.ar/
---
Has recibido este mensaje porque estás suscrito al grupo "PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a pyafipws+unsubscribe@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages