[pyar] Acceder a web service SOAP con SSL

Sebastián Seba ssebastianj en gmail.com
Mie Jul 18 12:28:21 -03 2018


El 17 de julio de 2018, 12:29, Maxi<maxirobaina en gmail.com> escribió:

> Hola,
>
> Estoy intentando acceder al un webservice con SOAP. Para esto estoy usando
> zeep [1] y  python 3.6 en Ubuntu 16.04
> El servicio al que quiero acceder usa SSL y además una validación de
> usuario y contraseña. Me base en los ejemplos de la documentación para
> hacer las pruebas.
>
> EL problema es que me esta dando en siguiente error:
>
> Caused by SSLError(SSLError("bad handshake: Error([('SSL routines',
> 'tls_process_server_certificate', 'certificate verify failed')],)",),))
>
> Entonces lo que intente hacer si éxito es probar directamente desde la
> consola con el cliente openssl y obtengo la siguiente salida (son solo las
> primeras lineas)
>
> CONNECTED(00000003)
> depth=2 C = AR, ST = CABA, CN = CECBA-CA, O = CECBA, OU = Operaciones,
> mail = computos en mail.com.ar
> verify error:num=19:self signed certificate in certificate chain
> 140109698238104:error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert
> handshake failure:s3_pkt.c:1487:SSL alert number 40
> 140109698238104:error:140790E5:SSL routines:ssl23_write:ssl handshake
> failure:s23_lib.c:177:
>
> Y al final me muestra
> Verify return code: 19 (self signed certificate in certificate chain)
>
> Por todo esto estoy viendo que el problema no estaría precisamente en como
> estoy usando zeep sino algo que no tengo bien configurado en mi máquina.
>
> Si pueden iluminarme en que puedo estar haciendo mal se los agradecere
>
>
> Saludos
>
>
> [1]  http://python-zeep.readthedocs.io
>
>

Al parecer el certificado SSL que está utilizando el servidor es del tipo
"auto-firmado" y no se encuentra firmado por una Certificate Authority (CA)
de confianza.
Ubuntu tiene el paquete "ca-certificates" [0] actualizado con los
certificados más comunes.

Una forma más complicada (entre comillas) para evitar lidiar con
certificados auto-firmados es utilizar certificados provistos por Lets
Encrypt [1] o aún más sencillo es
utilizar el servicio de Cloudflare que provee certificados de manera
gratuita. En httpsiseasy.com hay videos con ejemplos de cómo utilizar
Cloudflare y HTTPS.

[0] https://launchpad.net/ubuntu/xenial/+source/ca-certificates
[1] https://letsencrypt.org/

-- 
Sebastián J. Seba (ssebastianj)
Ingeniero en Sistemas de Información
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20180718/eeab75f6/attachment.html>


Más información sobre la lista de distribución pyar