python-arango 库的 SSL 证书错误

SSL Certificate Error with python-arango Library

我正在尝试连接 Python-Arango library to an application. I have set up the ArangoDB on Kubernetes nodes using this tutorial。我的集群 yaml 文件是这样的:

---
apiVersion: "database.arangodb.com/v1alpha"
kind: "ArangoDeployment"
metadata:


name: "arango-cluster"
spec:
  mode: Cluster
  image: arangodb/arangodb:3.7.6
  tls:
    caSecretName: arango-cluster-ca
  agents:
    storageClassName: my-local-storage
    resources:
      requests:
        storage: 2Gi
  dbservers:
    storageClassName: my-local-storage
    resources:
      requests:
        storage: 17Gi
  externalAccess:
    type: NodePort
    nodePort: 31200

设置似乎很好,因为我可以访问网络 UI 以及通过 Arango shell。但是,当我使用 python-arango 库将我的应用程序连接到数据库时,我收到了与证书相关的错误:

Max retries exceeded with url: /_db/testDB/_api/document/demo/10010605 (Caused by SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:852)'),))

在执行 kubectl get secrets 时,我在那里看到 arango-cluster-ca,我在上面的 YAML 文件中明确提到了这一点。我还在python代码中设置了验证标志False如下

db = client.db(name='testDB', verify=False, username='root', password='')

然而,它并没有像预期的那样绕过验证。

我想了解我可能错过了什么 - 无论是在设置过程中,还是在 Python 调用中 - 这不会让我绕过这个 SSL 证书错误问题,或者是否可以设置证书向上。我试过这个 Arango tutorial 来设置证书,但没有成功。

谢谢。

我能想到的唯一解决方法是选择不安全的路由。 我没有在 arango 集群配置文件的 spec.tls.caSecretName 字段中设置 arango-cluster-ca,而是将该字段设置为 None。它让我可以毫无问题地连接到 http。

仍然想知道是否有一些解决方法可以通过 https 连接它,所以我仍然愿意接受答案,否则我会关闭它。