4

「tornado.httpclient.AsyncHTTPClient」を使用して「POST」リクエストを「https」Webサイトに送信したいのですが、次のようになります。

HTTPError: HTTP 599: [Errno 1] _ssl.c:503: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed  

代わりに「urllib」を使用すると(同じURLとパラメーター、ヘッダーはわかりません)
、次のようなコードで機能します。

url = r'https://**********.com/****/'
request = tornado.httpclient.HTTPRequest(url = url, method = 'POST', body = body, headers = headers)
client = tornado.httpclient.AsyncHTTPClient()
client.fetch(request, callback = on_reqeust)
tornado.ioloop.IOLoop.instance().start()
4

2 に答える 2

3
request = tornado.httpclient.HTTPRequest(url=url, method='POST', body=body,
                                         validate_cert=False)

httpリクエストを生成するときに「validate_cert=False」を追加
し、curl_httpclientを使用する必要がないようです。

#tornado.httpclient.AsyncHTTPClient.configure("tornado.curl_httpclient.CurlAsyncHTTPClient")
于 2013-02-28T06:18:10.427 に答える
1

SimpleAsyncHTTPClientによって使用されるCA証明書ファイルを更新することもできます。に配置する必要があります

site-packages/tornado/ca-certificates.crt

私の場合、ファイルを竜巻の場所にコピーする/etc/ssl/certs/ca-certificates.crtことで問題が解決しました。

注:有効な証明書を持っているが、認証局がトルネードによって認識されていない場合に役立ちます。

于 2014-06-26T16:36:06.017 に答える