证书验证失败:无法获取本地颁发者证书(_ssl.c:1002)

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

我通过 ssl 连接时遇到问题。

连接的本质:

我用 Python 编写了一个模型,我需要将其指标结果传输到位于服务器上的 mlflow。

连接代码并不简单 - 设置环境变量并写下您想要记住实验的模型的名称。

但是当我尝试连接时,它抱怨证书。

API request to ... failed with exception HTTPSConnectionPool(host='...', port=443): Max retries exceeded with url: ... (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate ( _ssl.c:1002)')))

在之前的问题中,人们写的是安装本地验证文件 - 但我已经有了它们,但没有帮助。此错误是否与 mlflow 服务器本身未配置的验证有关?

这是代码:

os.environ['MLFLOW_TRACKING_USER'] = settings.MLFLOW_TRACKING_USER
os.environ['MLFLOW_TRACKING_PASSWORD'] = settings.MLFLOW_TRACKING_PASSWORD
os.environ['MLFLOW_S3_ENDPOINT_URL'] = settings.MLFLOW_S3_ENDPOINT_URL
os.environ['MLFLOW_TRACKING_URI'] = settings.MLFLOW_TRACKING_URI

try:
     mlflow.set_experiment("factoring_client_predict_fact")
     mlflow.start_run()
     # code for training a model or other operations with mlflow
except Exception as e:
     print(f"An error occurred while establishing a connection: {e}")

python ssl-certificate mlflow
1个回答
0
投票

通过两种方式解决问题

  1. 添加了本地公司证书(中级和根)

  2. 依靠https://www.mlflow.org/docs/ 我发现了一个环境变量 - MLFLOW_TRACKING_INSECURE_TLS (类似于

    verify = False

语法:

os.environ['MLFLOW_TRACKING_INSECURE_TLS'] = 'true' 
© www.soinside.com 2019 - 2024. All rights reserved.