【发布时间】:2014-08-13 05:22:09
【问题描述】:
我在从 https 服务器获取 html 页面时遇到问题。通过客户端证书验证来保护对资源的访问(在浏览器中,我必须选择正确的证书才能访问页面)。
我正在尝试像这样使用 python 的 http.client 库:
import http.client
conn = http.client.HTTPSConnection('example.com', 443, key_file = 'tmp/private.pem', cert_file = 'tmp/public.pem')
conn.set_debuglevel(0)
conn.request('GET', '/index.htm')
result = conn.getresponse()
if result.status != http.client.ACCEPTED:
pass
print(result.status, result.reason)
conn.close()
作为该程序的输出,我得到:403 Forbidden。我做错了什么?
请注意,我可以通过浏览器直接访问此资源。私钥和公钥是从使用 openssl 命令(openssl pkcs12 -nocerts -nodes -in cert.p12 -out private.pem 和 openssl pkcs12 -nokeys -in cert.p12 -out public.pem)从该浏览器导出的 pkcs12 文件中提取的
【问题讨论】:
标签: python http ssl python-3.x client-certificates