【问题标题】:How to use AWS certificate with python requests library?如何将 AWS 证书与 python 请求库一起使用?
【发布时间】:2017-08-31 06:28:20
【问题描述】:

我有一个在 aws 云上运行的弹性负载均衡器。我在端口 443 上附加了一个 HTTPS 侦听器,它在证书管理器中使用证书。我想将来自 python 脚本的 https 请求发送到弹性负载。我无法弄清楚我应该进行的确切 api 调用来实现这一点。

【问题讨论】:

    标签: python amazon-web-services ssl python-requests


    【解决方案1】:

    您可以向 ELB 的 DNS 发起 https 获取请求。

    要生成 HTTPS 请求,请使用引用自 this answer 的以下脚本。

    import urllib.request
    r = urllib.request.urlopen('<DNS OF ELB>')
    print(r.read())
    

    如果你真的要使用http.client,你必须调用endheaders 发送请求标头后:

    import http.client
    conn = http.client.HTTPSConnection('DNS OF ELB', 443)
    conn.putrequest('GET', '/')
    conn.endheaders() # <---
    r = conn.getresponse()
    print(r.read())
    

    作为putrequest/endheaders 的快捷方式,您也可以使用request 方法,像这样:

    import http.client
    conn = http.client.HTTPSConnection('DOMAIN', 443)
    conn.request('GET', '/') # <---
    r = conn.getresponse()
    print(r.read())
    

    更新 1

    对于 Python 2.7,您可以使用 httplib 或 urllib2

    如果您使用的是httplib,HTTPS 仅在 socket 模块编译时支持 SSL 时才支持。

    对于 urllib2,请参阅 article

    【讨论】:

    • urllib.request 似乎不适用于 python2.7,我已经安装了 urllib,但是无法导入 urllib.requests,traceback 说模块不存在。
    猜你喜欢
    • 2021-01-11
    • 2023-03-23
    • 2016-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-05
    • 2016-05-09
    • 1970-01-01
    相关资源
    最近更新 更多