httplib2 を使用して HTTPS GET を実行しようとすると、次のエラーが発生します。
>>> import httplib2
>>> http = httplib2.Http(cache=None, timeout=30)
>>> response, content = http.request('https://www.example.com', 'GET')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/app/jython/2.5.2/Lib/site-packages/httplib2/__init__.py", line 1436, in request
(response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey)
File "/app/jython/2.5.2/Lib/site-packages/httplib2/__init__.py", line 1188, in _request
(response, content) = self._conn_request(conn, request_uri, method, body, headers)
File "/app/jython/2.5.2/Lib/site-packages/httplib2/__init__.py", line 1162, in _conn_request
conn.connect()
File "/app/jython/2.5.2/Lib/site-packages/httplib2/__init__.py", line 925, in connect
raise socket.error, msg
socket.sslerror: (-1, 'SSL exception')
私は SSL にあまり詳しくなく、-1 エラー コードの意味もよくわかりません。httplib2 は SSL 証明書を検証しないと想定していました。
通常の wget は失敗しますが、wget --no-check-cert は機能します。
$ wget -qO- https://www.example.com --no-check-certificate
Up
ブラウザから URL にアクセスしても問題ないようです。コードで何か間違ったことをしていますか? または、socket.sslerror: (-1, 'SSL exception') は何か他の問題があることを意味しますか?