私はPythonを使用していくつかの内部ページを掻き集めています。私はSSLの検証と警告を無効にしました。Python - requests.exceptions.SSLError - dhキーが小さすぎる
requests.packages.urllib3.disable_warnings()
page = requests.get(url, verify=False)
特定のサーバーでは、SSLエラーが発生しましたが、過去には取得できません。
Traceback (most recent call last):
File "scraper.py", line 6, in <module>
page = requests.get(url, verify=False)
File "/cygdrive/c/Users/jfeocco/VirtualEnv/scraping/lib/python3.4/site-packages/requests/api.py", line 71, in get
return request('get', url, params=params, **kwargs)
File "/cygdrive/c/Users/jfeocco/VirtualEnv/scraping/lib/python3.4/site-packages/requests/api.py", line 57, in request
return session.request(method=method, url=url, **kwargs)
File "/cygdrive/c/Users/jfeocco/VirtualEnv/scraping/lib/python3.4/site-packages/requests/sessions.py", line 475, in request
resp = self.send(prep, **send_kwargs)
File "/cygdrive/c/Users/jfeocco/VirtualEnv/scraping/lib/python3.4/site-packages/requests/sessions.py", line 585, in send
r = adapter.send(request, **kwargs)
File "/cygdrive/c/Users/jfeocco/VirtualEnv/scraping/lib/python3.4/site-packages/requests/adapters.py", line 477, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: [SSL: SSL_NEGATIVE_LENGTH] dh key too small (_ssl.c:600)
これは、Cygwin、WindowsおよびOSXの両方で発生します。私の研究は、サーバー上の古いOpenSSLを暗示していました。私は理想的にクライアント側の修正を探しています。
編集: 私は暗号を使用することによってこの問題を解決することができましたが、警告または証明書の検証が助けにはなりません無効
import requests
requests.packages.urllib3.util.ssl_.DEFAULT_CIPHERS += 'HIGH:!DH:!aNULL'
try:
requests.packages.urllib3.contrib.pyopenssl.DEFAULT_SSL_CIPHER_LIST += 'HIGH:!DH:!aNULL'
except AttributeError:
# no pyopenssl support used/needed/available
pass
page = requests.get(url, verify=False)
を持っている場合に警告を無効にするには、インポートすることができますか? SSL証明書に問題がある場合は、問題を無視しながらHTTPを使用するか、HTTPSを使用し続けますか? –
@MarcelWilson:これは証明書の問題ではありません。 –
@SteffenUllrichあなたはもちろん正しいです。私は「SSL」が一般的に問題を抱えていると述べるべきだった。 –