我有一个Web服务器,它设置了拒绝没有有效.p12证书的连接.我需要使用Python脚本访问服务器上运行的REST API,但找不到任何相关方法.如果有人对如何使用Python中的.p12证书执行SSL握手有很好的指导,请告诉我.
解决方法:
与this question的答案中所述的方法相同,该方法要求在HTTPS连接期间验证服务器证书(默认情况下urllib或httplib完全不执行此操作)应该允许您指定CA证书之外的客户端证书名单.
>如果您选择基于ssl.wrap_socket
的选项,请按照文档中的说明传递cerfile / keyfile参数.
>使用PycURL,您应该能够调用setopt(pycurl.SSLCERT,“ / path / to / cert.pem”)和setopt(pycurl.SSLKEY,“ / path / to / key.pem”).选项名称基于SSL and SECURITY OPTIONS section of the cURL documentation(密码也有一个选项).
您可能必须将PKCS#12(.p12)文件转换为PEM格式.为此:
# Extract the certificate:
openssl pkcs12 -in filename.p12 -nokeys -out certificate.pem
# Extract the private key:
openssl pkcs12 -in filename.p12 -nocerts -out privkey.pem