Closed Robert-Vorster closed 10 months ago
Hi @Robert-Vorster, thanks for logging!
You could try using a custom session. For example:
import requests
from citric import Client
remote_url = 'https://limesurvey.{company}.com/index.php/admin/remotecontrol’
session = requests.Session()
session.verify = False
client = Client(
remote_url,
"LS_API_Reader”,
"uFg$9Jb)CkZ6d83f[vhA4yE+rL{]VP(G”,
requests_session=session,
)
Let me know if that works.
And of course you can point to a private certificate by setting REQUESTS_CA_BUNDLE=/path/to/your/certificate.pem
in your environment, and the library will pick it up.
EDIT: I’ve documented this approach in https://citric.readthedocs.io/en/latest/how-to.html#change-the-default-http-session-attributes
Citric Version
0.9.0
Python Version
3.8
LimeSurvey Version
5.1.9
Backend database
10.1.48-MariaDB-0ubuntu0.18.04.1
Operating System
Windows 10
Description
Trying to connect to on prem limesurvey to export survey responses.
I am able to import citric, but failing a client connection because of an SSL cert issue.
Normally the requests library allows us to pass the 'verify=False' parameter, but I don't see something similar for the client.
Error message received: SSLError: HTTPSConnectionPool(host='limesurvey.ccisouthafrica.com', port=443): Max retries exceeded with url: /index.php/admin/remotecontrol (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1131)')))
Again, this is a self hosted internal application with self signed certs to tick the boxes for security, risk and compliance.
Code
Permissions Matrix