[Python-es] ROOT CA certficate

Jose Caballero jcaballero.hep en gmail.com
Vie Ago 21 09:46:32 EDT 2020


Hola,

Primero, contexto [1].

Estoy intentando usar este cliente https://pypi.org/project/rt/ para
interactuar con el sistema de tickets RT de nuestro curro. Por lo que
veo en el código, y los mensajes de error, usa la librería requests.

Si no hago nada especial, SSL falla, como era de esperar [2].

Puedo evitarlo con el truco sucio [3].
Pero no me gusta. Además, con cada acción me escupe mensajes de WARNING.

Me he bajado el certificado de la Autoridad Certificadora que hay
instalado en el servidor RT.
Pero ahora no tengo claro cómo hacer que la librería requests lo encuentre.
He googleado un poco, y he probado con variables de entorno
REQUESTS_CA_BUNDLE y SSL_CERT_DIR, pero no ha habido suerte.
Veo en google demasiadas alternativas, no tengo claro si alguna de
ellas es obsoleta, o no estoy entendiendo lo que leo...

Si alguien me puede dar alguna pista, estaría eternamente agradecido.

Muchas gracias por adelantado.
Saludos,
Jose

===============================
[1]

$ uname -a
Darwin vpn-3-078.rl.ac.uk 18.7.0 Darwin Kernel Version 18.7.0: Sun Dec
 1 18:59:03 PST 2019; root:xnu-4903.278.19~1/RELEASE_X86_64 x86_64

$ python -V
Python 2.7.16

[2]
>>> import rt
>>> t = rt.Rt('https://my.rt.server/REST/1.0/', 'username', 'pass')
>>> t.login()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Python/2.7/site-packages/rt.py", line 374, in login
    without_login=True)) == 200
  File "/Library/Python/2.7/site-packages/rt.py", line 299, in __request
    raise ConnectionError("Connection error", e)
rt.ConnectionError: Connection error (Caused by
SSLError(MaxRetryError("HTTPSConnectionPool(host='my.rt.server',
port=443): Max retries exceeded with url: /REST/1.0/ (Caused by
SSLError(SSLError(0, u'unknown error (_ssl.c:3063)'),))",),))


[3]
>>> t = rt.Rt('https://my.rt.server/REST/1.0/', 'username', 'pass', verify_cert=False)


Más información sobre la lista de distribución Python-es