【发布时间】:2018-01-27 19:56:38
【问题描述】:
我正在使用 python3。我需要使用证书文件来建立安全连接。 在这种情况下,我使用了来自 http.client 的 Httpsconnection 类... 此类获取证书文件路径并使用它。像这样:
import http.client
client=http.client.HTTPSConnection\
("epp.nic.ir",key_file="filepath\\nic.pem",cert_file="filepath\\nic.crt")
如您所见,此类获取文件路径并正常工作。 但我需要提供这些文件的内容。因为我想将 crt 文件和 pem 文件的内容放入 DB。原因是可能文件路径更改... 所以我尝试了这个:
import http.client
import base64
cert = b'''
content of cert file
'''
pem = b'''
content of pem file
'''
client=http.client.HTTPSConnection("epp.nic.ir" ,pem, cert)
不出所料,我收到了这个错误:
TypeError: certfile should be a valid filesystem path
有没有办法让这个类获取文件的内容而不是文件路径?! 或者是否可以为此目的对http的源代码进行更改?!
【问题讨论】:
-
http.client(以及其他一些与 ssl 相关的模块)API 似乎不支持此功能。我发现这个讨论是关于向 ssl 模块添加这样的功能:bugs.python.org/issue16487 这个 SO 线程也可能提供一些想法:stackoverflow.com/questions/12336239/…
标签: python python-3.x ssl https