首页 > 解决方案 > 如何修复 ssl_certification 错误,该错误由 ssl 包生成并在 restAPI 中使用

问题描述

我正在从 vCenter 6.5 下载 SSL 证书并将证书复制到如下文件中。

cert = ssl.get_server_certificate((server, port))

with open(file_name, "w") as outfile:
   outfile.write(cert)

稍后当我在 restAPI 中使用 file_name 时,出现错误 [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:618)

我尝试在 Shell 中交叉验证证书,但出现以下错误

# openssl verify -verbose -CAfile file_name file_name 
file_name: CN = pn-a26-ub-15-7-vc.cisco.com, C = US
error 20 at 0 depth lookup:unable to get local issuer certificate

有人可以帮助解决生成证书的问题吗

标签: python-3.x

解决方案


您通过-CAfile参数传递的文件应包含用于颁发要验证的证书的根证书(和中间证书,如果有的话)。您似乎正在通过服务器证书本身。

如果这是 CA 签名的证书,您可以省略该-CAfile参数。如果没有,您应该以 PEM 格式提供发行者链。据我所知,vCenter 使用自签名证书。您可以使用此处描述的方法下载根证书。


推荐阅读