パラメータを使用してverify
CA 証明書を無視する
一部の Web サイトの CA 証明書は信頼されたルート証明機関によって認証されていないため、ブラウザを使用してアクセスすると、12306 Web サイトと同様の SSL エラー メッセージが表示されます。(2018 年 10 月以前の 12306 ウェブサイト)
requests
ライブラリを使用してリクエストを送信するときに、訪問した Web サイトに同様の問題がある場合、ssl.CertificateError
その単語を含む例外がスローされます。
コードを実行して効果を確認します
次のコードを実行して、CA 証明書に問題がある Web サイトにアクセスしようとすると、証明書検証例外がスローされます。
# 导入requests模块,用于进行HTTP请求
import requests
# 要访问的URL
url = "https://sam.huat.edu.cn:8443/selfservice/"
try:
# 发起GET请求并获取响应
response = requests.get(url)
# 检查响应状态码是否为2xx(表示请求成功)
response.raise_for_status()
except requests.exceptions.RequestException as e:
# 如果发生异常,则打印异常信息
print("发生异常:", e)
解決
コード内で通常のリクエストを行うには、verify=False
パラメータを使用できますが、この時点では、requests
モジュールはリクエストの送信時に CA 証明書を検証しません。
# 导入requests模块,用于进行HTTP请求
import requests
# 要访问的URL
url = "https://sam.huat.edu.cn:8443/selfservice/"
# 发起GET请求并获取响应,忽略SSL证书验证(verify=False)
response = requests.get(url, verify=False)
注:メソッドにパラメータをrequests.get()
追加すると、SSL 証明書の検証を無視できます。verify=False
これは場合によっては便利ですが、セキュリティ上のリスクになる可能性があることに注意してください。このパラメータは慎重に使用し、信頼できる Web サイトにアクセスしていることを確認してください。