This repository was archived by the owner on Aug 30, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 55
This repository was archived by the owner on Aug 30, 2024. It is now read-only.
Error 403 when trying to access couchDB server that uses SSL certificate. #499
Copy link
Copy link
Closed
Description
Hello,
I'm trying to connect to a remote couchDB server, this server uses a SSL certificate which I installed correctly on my mac and I can access the server via my browser.
When I try to connect to the server via python-cloudant, I get an error, here's the code :
from cloudant.client import Cloudant
from cloudant.client import CouchDB
#client = CouchDB('myuser', 'mypassword', url='https://xxx.xx.xxx.xx', connect=True)
session = client.session()
print('Username: {0}'.format(session['userCtx']['name']))
print('Databases: {0}'.format(client.all_dbs()))
# Disconnect from the server
client.disconnect()
and here's the error I get :
HTTPError Traceback (most recent call last)
<ipython-input-57-e11f4f61f4aa> in <module>
5
6
----> 7 client = CouchDB('myuser', 'mypassword', url='https://xxx.xx.xxx.x', connect = True)
8
9
~/miniconda3/lib/python3.8/site-packages/cloudant/client.py in __init__(self, user, auth_token, admin_party, **kwargs)
120 connect_to_couch = kwargs.get('connect', False)
121 if connect_to_couch and self._DATABASE_CLASS == CouchDatabase:
--> 122 self.connect()
123
124 @property
~/miniconda3/lib/python3.8/site-packages/cloudant/client.py in connect(self)
188 self.r_session.headers.update(self._client_user_header)
189
--> 190 self.session_login()
191
192 # Utilize an event hook to append to the response message
~/miniconda3/lib/python3.8/site-packages/cloudant/client.py in session_login(self, user, passwd)
229 :param str auth_token: Authentication token used to connect to server.
230 """
--> 231 self.change_credentials(user=user, auth_token=passwd)
232
233 def change_credentials(self, user=None, auth_token=None):
~/miniconda3/lib/python3.8/site-packages/cloudant/client.py in change_credentials(self, user, auth_token)
239 """
240 self.r_session.set_credentials(user, auth_token)
--> 241 self.r_session.login()
242
243 def session_logout(self):
~/miniconda3/lib/python3.8/site-packages/cloudant/_client_session.py in login(self)
153 data={'name': self._username, 'password': self._password},
154 )
--> 155 resp.raise_for_status()
156
157 def logout(self):
~/miniconda3/lib/python3.8/site-packages/requests/models.py in raise_for_status(self)
891
892 if http_error_msg:
--> 893 raise HTTPError(http_error_msg, response=self)
894
895 def close(self):
HTTPError: 403 Client Error: Forbidden for url:
I can't figure out a way around it, another thing is when I point requests directly to the certificate using the code below, I get a response 200, which means that the connection is established. Here's the code :
r = requests.get('https://xxx.xx.xxx.x', verify='catrust/',cert=('client01.crt', 'client01.key'))
I'm using macOS Big Sur, Python 3.9.
Thank you in advance.
Metadata
Metadata
Assignees
Labels
No labels