【问题标题】:How to make a rest call request from python using client certificate (in windows)如何使用客户端证书从 python 发出休息呼叫请求(在 Windows 中)
【发布时间】:2014-12-09 12:38:02
【问题描述】:

我正在尝试在 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 文件中使用并没有运气。私钥没有密码。任何线索我为什么会出现此错误?

非常感谢

【问题讨论】:

    标签: python windows python-2.7 client-certificates


    【解决方案1】:

    我在 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-11
      • 1970-01-01
      • 2016-10-01
      • 2021-05-29
      • 2021-08-23
      • 1970-01-01
      • 1970-01-01
      • 2016-12-10
      相关资源
      最近更新 更多