session = requests.session()
response = session.get(TEST_URL)
"""
# TEST_URLのサーバーの設定によっては
# requests.exceptions.SSLError: HTTPSConnectionPool(host='*****', port=443): Max retries exceeded with url: / (Caused by SSLError(SSLError(1, '[SSL: DH_KEY_TOO_SMALL] dh key too small (_ssl.c:992)')))
# のようなエラーが発生してしまう
"""
ごく単純なTEST_URLをget()するだけの処理で、requests.exceptions.SSLErrorが発生する現象に遭遇。
解決方法をネットで検索してみると
requests.packages.urllib3.util.ssl_.DEFAULT_CIPHERS += ":HIGH:!DH"
のようにする方法がひっかかるが、どうもレガシーなバッドノウハウ(?)らしい(urllib3>=2だとDEFAULT_CIPHERSが未定義なので怒られてしまう)。
ssl - How to alter cipher suite used with Python requests? - Stack Overflow こちらの回答を参考にして、
session = requests.session()
session.mount(prefix, custom_adaptor)
のようにURLのprefixに対して(任意のciphersをSSL-contextに適用した)custom_adaptorを設定してやるのが正当な(?)対処方法っぽい。