<目次>
(1) SSLCertVerificationError [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificateエラーが出る原因と対処
(1-1) エラー概要
(1-2) 原因
(1-3) 対処
(1-4) 補足:「verify = False」は原則使用NG
(1) SSLCertVerificationError [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificateエラーが出る原因と対処
(1-1) エラー概要
requests.exceptions.SSLError: HTTPSConnectionPool(host='demo.pleasanter.org', port=443): Max retries exceeded with url: /api/items/7185230/create (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:992)')))
(1-2) 原因
(1-3) 対処
●STEP1:必要な証明書のダウンロード
●STEP2:落とした証明書を端末の信頼済CA証明書に追加
import requests def main(): print(requests.certs.where()) if __name__ == "__main__": main()
(1-4) 補足:「verify = False」は原則使用NG
特に、下記のような「verify=False」による解決策を提示しているQAサイトなどは要注意です。
処理自体は通るかも知れませんが、暗号化していないため、万が一データを傍受された際に解読できてしまいます。
from urllib3.exceptions import InsecureRequestWarning # ~中略~ requests.packages.urllib3.disable_warnings(category=InsecureRequestWarning) response = requests.post(final_url, headers=headers, json=body, verify=False)