我正在尝试将Python-Arango library连接到一个应用程序。我已经使用这个tutorial在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设置似乎很好,因为我可以访问web UI以及通过Arango shell。但是,当我使用python-arango库将我的应用程序连接到DB时,我得到了一个与证书相关的错误:
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来设置一个证书,但是它没有给我成功。
谢谢。
发布于 2021-07-14 21:48:32
我唯一能想到的变通办法就是选择不安全的路由。我没有在arango集群配置文件的spec.tls.caSecretName字段中设置arango-cluster-ca,而是将该字段设置为None。它让我可以毫无问题地连接到http。
我仍然想知道是否有一些解决办法,让它通过https连接,所以我仍然是开放的答案,否则我将关闭此。
https://stackoverflow.com/questions/68238964
复制相似问题