I was getting the same exact errors whilst connecting to MongoDB Atlas via pymongo on a DigitalOcean droplet.

I didn’t want to mess with any certificates or lower the security of my app. After a lot of searching and trial and error, I realised that the problems were definitely between the connection from the droplet and Atlas.

Under Security > Network Access, I had put my droplet’s reserved IP instead of it’s public one. After adding the public one instead, I had no errors and could connect flawlessly.

Silly mistake but something to learn from I guess! Thankfully for me it was a simple fix so just going to put it here in case it helps someone else out.