我正在尝试在 Python (2.7) 中对 tomcat 服务器进行 RESTfull 调用,并且必须使用带有客户端证书的 SSL 来完成。
下面一行是对tomcat的调用是如何完成的:
result = requests.get(url, headers=headers, verify=settings.SLA_CA_SERVER_CERTIFICATE, cert=(settings.SLA_CLIENT_CERTIFICATE_PUBLIC, settings.SLA_CLIENT_CERTIFICATE_PRIVATE), **kwargs)
我收到以下错误:
[Errno 336265225] _ssl.c:355: error:140B0009:SSL routines:SSL_CTX_use_PrivateKey_file:PEM lib ()
我试过在 cert 变量 .pem 文件和 .key 和 .crt 文件中使用没有运气。私钥没有密码。知道为什么会出现此错误吗?
非常感谢
最佳答案
我在 Windows 中使用 openssl 从 .p12 文件创建公钥和私钥。 我使用 linux (ubuntu) 中的 openssl 创建了它们并且它有效。
仅供引用,用于创建 key 的命令在哪里
openssl pkcs12 -in path.p12 -out newfile.crt.pem -clcerts -nokeys
openssl pkcs12 -in path.p12 -out newfile.key.pem -nocerts -nodes
关于python - 如何使用客户端证书从 python 发出休息调用请求(在 Windows 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26365544/