python-arango 库的 SSL 证书错误

问题描述 投票:0回答:2

我正在尝试将 Python-Arango library 连接到应用程序。我已经使用此教程在 Kubernetes 节点上设置了 ArangoDB。我的集群 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

安装似乎没问题,因为我可以通过 Arango shell 访问 Web UI。但是,当我使用 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 来设置证书,但它没有给我成功。

谢谢。

kubernetes arangodb python-arango
2个回答
1
投票

我能想到的唯一解决方法是选择不安全的路线。 我将该字段设置为

arango-cluster-ca
,而不是 arango 集群配置文件的
spec.tls.caSecretName
字段中的
None
。它允许我毫无问题地连接 http。

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


0
投票

刚刚找到了使用一些未记录的开关的解决方法

    arango_client = ArangoClient(hosts=ARANGO_DB_URL, verify_override=False)
    clients.shared_arango_db = arango_client.db(ARANGO_DB_NAME, username=ARANGO_DB_USER, password=ARANGO_DB_PASSWORD, verify_certificate=False)
© www.soinside.com 2019 - 2024. All rights reserved.