我已经建立了一个网络服务器,它拒绝连接,没有有效的.p12证书。 我需要访问在Python脚本在服务器上运行的REST API,但我无法找到如何做任何事情。 如果任何人有关于如何执行使用Python中的.p12证书的SSL握手一个很好的教程,请让我知道。
Answer 1:
在答案中所描述的相同的方法这个问题 ,它要求对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和安全选项部分 (有口令的选项也是如此)。
这可能是因为你将不得不转换您的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
文章来源: https handshake with keystores in Python