如何使用客户端证书从python发出休息调用请求(在windows中)

时间:2014-10-14 16:19:50

标签: python windows python-2.7 client-certificates

我试图在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:错误:140B0009:SSL例程:SSL_CTX_use_PrivateKey_file:PEM lib()

我尝试使用 cert 变量 .pem 文件和 .key .crt 文件,没有运气。私钥没有密码。我有这个错误的任何线索?

非常感谢

1 个答案:

答案 0 :(得分:3)

我在Windows中使用openssl从.p12文件创建公共证书和私钥。 我使用linux和ubuntu中的openssl创建它们并且它有效。

只是提供信息,用于创建键的命令

openssl pkcs12 -in path.p12 -out newfile.crt.pem -clcerts -nokeys    
openssl pkcs12 -in path.p12 -out newfile.key.pem -nocerts -nodes