使用自签名证书的Python https连接

时间:2016-01-07 21:15:14

标签: python amazon-web-services ssl adfs

我试图在python脚本中实现SSL。我通过浏览页面并接受自签名证书获得了证书。然后我从Firefox导出它,并将其作为.pem保存到我的桌面。

代码是:

sslcertlocation = '/Users/derjur/Desktop/MYHOST.mydomain.local.pem'

idpentryurl = 'https://MYHOST.mydomain.local:443/adfs/ls/IdpInitiatedSignOn.aspx?loginToRp=urn:amazon:webservices'

session = requests.Session()

response = session.get(idpentryurl, verify=sslcertlocation)

错误是:

requests.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)

MYHOST在Windows 2008 R2下运行iis7。完整脚本基于SAML / ADFS脚本,如本博客中所述: http://blogs.aws.amazon.com/security/post/Tx1LDN0UBGJJ26Q/How-to-Implement-Federated-API-and-CLI-Access-Using-SAML-2-0-and-AD-FS#postCommentsTx1LDN0UBGJJ26Q

脚本的非SSL部分正在按预期工作。有趣的是,评论中没有人提到SSL ......

1 个答案:

答案 0 :(得分:0)

我认为你正在设置错误的论点。根据requests.Session(),get()将verify的可选参数 - 布尔值 - 发送到request()。

根据request.Session()。request(),传入证书的参数是cert = / path / to / cert.pem,它也被检查为字符串是路径或元组是(证书,密钥)对。