我正在使用 Python 3.9.5 和 PyMongo 3.11.4。我的MongoDB数据库版本是4.4.6。我使用的是 Windows 8.1
我正在学习 MongoDB,并且在 Atlas 中设置了一个集群并连接到该集群。每当我尝试将文档插入集合时,ServerSelectionTimeoutError
被提出,并且在其括号内有几个[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate
.
解决 TLS 错误 https://pymongo.readthedocs.io/en/stable/examples/tls.html#troubleshooting-tls-errorsPyMongo 文档中的内容并没有太多帮助,因为它们只为 Linux 和 macOS 用户提供提示。
值得一提的是,如果我设置tlsAllowInvalidCertificates=True
当初始化我的MongoClient
,一切正常。这听起来不安全,虽然我正在开发一个小项目,但我仍然想养成良好的习惯,并且不要凌驾于任何现有的安全措施之上,所以我希望有一种替代方案。
从我所做的所有搜索来看,我猜测我丢失了某些证书,或者 Python 无法找到它们。我已经调查过certifi
包,但是this https://pymongo.readthedocs.io/en/stable/examples/tls.html#dependencies文档的一部分看起来只有当我使用 Python 2.x 时才有必要,但我不是。
所以是的,我现在有点陷入困境。
嗯,我最终决定安装certifi
它起作用了。
client = MongoClient(CONNECTION_STRING, tlsCAFile=certifi.where())
希望文档对此能更清楚一些,但也许我只是看起来不够努力。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)