Problemas con ws_sr_padron.py SSL: CERTIFICATE_VERIFY_FAILED (Padron A5)

853 views
Skip to first unread message

Fede Devas

unread,
Jan 19, 2018, 9:29:11 AM1/19/18
to PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT
Estimados,
De la nada en el dia de hoy me esta fallando la consulta de Padron A5. (__version__ = "1.03b")
Estoy Ejecutando:
 python pyafipws/ws_sr_padron.py ./pyafipws/conf/rece.ini 27184945164 --constancia

y me devuelve:
/var/www/clients/client1/web1/web/NMV/pyafipws/utils.py:284: UserWarning: Corrigiendo WSDL ... http://aws.afip.gov.ar/sr-padron/webservices/personaServiceA5
  warnings.warn("Corrigiendo WSDL ... %s" % location)
Consultando AFIP online via webservice...
Traceback (most recent call last):
  File "pyafipws/ws_sr_padron.py", line 348, in <module>
    main()
  File "pyafipws/ws_sr_padron.py", line 307, in main
    ok = padron.Consultar(id_persona)
  File "/var/www/clients/client1/web1/web/NMV/pyafipws/utils.py", line 157, in capturar_errores_wrapper
    return func(self, *args, **kwargs)
  File "pyafipws/ws_sr_padron.py", line 196, 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)


Una diferencia que noto es que la url la tengo ingresada con https pero en el debug este que hace la app me la pone como http (de todos modos la consulta como https porque por http no atiende).

Configuracion de rece.ini:
[WSAA]
CERT=pyafipws/conf/NMV.crt
PRIVATEKEY=pyafipws/conf/NMV.key
CACERT=pyafipws/conf/afip_ca_info.crt


[WS-SR-PADRON-A5]
CUIT=`cuit cliente`
ENTRADA=pyafipws/tmp/entrada.txt
SALIDA=pyafipws/tmp/salida.txt


Espero si alguno le paso esto me pueda


Pablo Berra

unread,
Jan 19, 2018, 11:00:09 AM1/19/18
to PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT
Fede,

Justo acabo de postear que estoy teniendo el mismo error, no había visto tu post.
Lo raro en mi caso es que tengo dos servidores exactamente con la misma configuración y me falla hace dos días uno sólo, el Ubuntu 14.04, el OSX 10.13.2 me funciona perfectamente. 

Flavio V.

unread,
Jan 19, 2018, 1:16:28 PM1/19/18
to pyaf...@googlegroups.com
A mi tambien me esta fallando exactamente por el mismo error, sera algo de AFIP?

Saludos
Flavio

--
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.

Flavio V.

unread,
Jan 19, 2018, 11:07:56 PM1/19/18
to pyaf...@googlegroups.com
Estuve mirando este tema en mi caso particular pude solucionarlo enviando como CACERT=None en lugar de enviar el afip_ca_info.crt, despues mas adelante investigare mas el caso, pero al menos asi sali del paso.

Esto lo hice para el servicio de consulta de padron ya que era el unico afectado, el resto del sistema funcionaba bien.

Saludos
Flavio

Fernando Coliguante

unread,
Jan 20, 2018, 11:58:08 AM1/20/18
to PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT
Hola, tube el mismo problema y en mi caso lo solucione actualizando las librerias con un pip install -r requirements.txt --upgrade

Pablo Berra

unread,
Jan 20, 2018, 11:58:08 AM1/20/18
to PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT
No, probé CACERT=None y no me funcionó.

Lo que me extraña es que mi servidor OSX sigue funcionando perfectamente, o sea que el servicio de AFIP funciona.
No se que puede haber cambiado y por qué sólo afecta a mi servidor Ubuntu, que desgraciadamente es mi servidor de producción.
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.

Juan Manuel Martínez

unread,
Jan 21, 2018, 1:32:14 PM1/21/18
to pyaf...@googlegroups.com
Hola,

lo más probable es que alguna actualización automática haya hecho lío, particularmente OpenSSL. Fijate si podés hacer un downgrade del paquete.

Saludos,
Juan Manuel.

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.

Fede Devas

unread,
Jan 22, 2018, 10:52:34 AM1/22/18
to PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT
Me podras pasar tu file de requierements.txt
Yo tengo el ultimo que esta en github pero rompe todo porque por ejemplo tiene:
httplib2>=0.7
Y en varios mensajes se dice que hay que usar 0.9.2 o superior.
Se arregla con :
pip install httplib2==0.9.2

pero luego de hacer el:
 pip install -r requirements.txt --upgrade

Me esta tirando otros errores como por ejemplo:
/var/www/clients/client1/web1/web/NMV/pyafipws/wsaa.py:33: UserWarning: No es posible importar M2Crypto (OpenSSL)
  warnings
.warn("No es posible importar M2Crypto (OpenSSL)")
/var/www/clients/client1/web1/web/NMV/pyafipws/wsaa.py:34: UserWarning: ImportError: /usr/local/lib/python2.7/dist-packages/M2Crypto/_m2crypto.so: undefined symbol: sslv3_method

  warnings
.warn(ex['msg'])            # revisar instalaci�n y DLLs de OpenSSL


Fede Devas

unread,
Jan 22, 2018, 10:53:04 AM1/22/18
to PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT
Estimados,
Ejecute:
pip install -r requirements.txt --upgrade

Para lo cual previamente tuve que ejecutar (Debian jessie)
apt-get install libpq-dev python-dev libxml2-dev libxslt1-dev libldap2-dev libsasl2-dev libffi-dev
apt-get install libtiff5-dev  zlib1g-dev     libfreetype6-dev liblcms2-dev libwebp-dev libharfbuzz-dev libfribidi-dev     tcl8.6-dev

Luego de esto dejo de funcionar tambien rece1.py

Buscando en el foro encuentro que en los requerimientos dice que requiere httplib2==0.9.2 y en requeriments.txt dice httplib2>=0.7 (pero el primer pip lo rompio).
Esto se arregla ejecutando:
pip install httplib2==0.9.2


Ahora al momento sigo teniendo el error inicial del tema pero se me suma en cualquier consulta que haga:
CONFIG_FILE: ./pyafipws/conf/rece.ini
/var/www/clients/client1/web1/web/NMV/pyafipws/wsaa.py:33: UserWarning: No es posible importar M2Crypto (OpenSSL)
  warnings.warn("No es posible importar M2Crypto (OpenSSL)")
/var/www/clients/client1/web1/web/NMV/pyafipws/wsaa.py:34: UserWarning: ImportError: /usr/local/lib/python2.7/dist-packages/M2Crypto/_m2crypto.so: undefined symbol: sslv3_method

  warnings.warn(ex['msg'])            # revisar instalaci�n y DLLs de OpenSSL


Para sacar este error que aparece de M2Crypto basta con ejecutar:
 pip uninstall m2crypto 
(y de este modo se usa la version que trae el sistema operativo).

Basicamente estoy igual que al principio.
Alguna Idea?


El viernes, 19 de enero de 2018, 11:29:11 (UTC-3), Fede Devas escribió:

Mariano Reingart

unread,
Jan 24, 2018, 11:30:18 PM1/24/18
to pyaf...@googlegroups.com
Hola Fede:

Sobre la biblioteca m2crypto, deberían usar el paquete del sistema operativo (si existe / está actualizado).
Igualmente si no está instalado debería funcionar directamente con OpenSSL (el warning es una advertencia, se podría comentar).
Lo mismo con pysimplesoap, httplib2, etc.
Ver otro mail que respondí recientemente sobre temas similares de dependencias:


Si hay un error de SSL (CERTIFICATE_VERIFY_FAILED o también WRONG_VERSION_NUMBER), probablemente sea porque OpenSSL esté desactualizado.
Podrían probar conectar directamente (ver opciones):

openssl s_client -host aws.afip.gov.ar -port 443

Si conecta correctamente, habría que ver que protocolo soporta el Python (TLS):

$ python
>>> import ssl
>>> dir(ssl)
... 'PROTOCOL_SSLv23', 'PROTOCOL_TLSv1', 'PROTOCOL_TLSv1_1', 'PROTOCOL_TLSv1_2' ...

Lo ideal sería que soporte TLSv1.2 (el protocolo de seguridad más actualizado).
En pysimplesoap/transport.py se podría establecer USE_SSLv3 = False , con eso forzaría a TLSv1 siempre.
Obviamente en True forzaría a SSLv3 que es un protocolo antiguo y no debería utilizarse.
Con el valor predeterminado (None) tiene otra lógica.
En las versiones anteriores era automático (sobre todo con SO viejos, pero puede dar más problemas en los nuevos...)

Si el inconveniente persiste, podrían utilizar la biblioteca pycurl (paquete python-pycurl en debian/ubuntu), que es una librería de conexión alternativa.
En ese caso, configurar el wrapper en cada sección [WSAA], [WSFEv1], [WS_SR_PADRON_A5]:

WRAPPER=pycurl

También deberían configurar CACERT en cada sección (verificación de canal seguro):


Hubo cambios en OpenSSL, Python y AFIP por estas cuestiones de protocolos de seguridad, es recomendable que tengan las últimas actualizaciones instaladas.
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
Reply all
Reply to author
Forward
0 new messages