SSL を修正: Python の CERTIFICATE_VERIFY_FAILED エラー
- SSL証明書
-
SSL: CERTIFICATE_VERIFY_FAILED
エラーの原因 -
SSL: CERTIFICATE_VERIFY_FAILED
エラーを修正 -
SSL で未検証のコンテキストを作成して、
SSL: CERTIFICATE_VERIFY_FAILED
エラーを修正する -
SSL で未検証の HTTP コンテキストを作成して、
SSL: CERTIFICATE_VERIFY_FAILED
エラーを修正する -
pip
コマンドでSSL: CERTIFICATE_VERIFY_FAILED
エラーを修正 -
Requests モジュールを使用して
SSL: CERTIFICATE_VERIFY_FAILED
エラーを修正する - まとめ
SSL は、ユーザーとサーバーの間で送信されるデータを暗号化するためのプロトコルです。 サーバーはデジタル証明書を作成してクライアントに送信し、データが改ざんされないようにします。
SSL 証明書を作成するとき、CA はドメインをチェックします。
証明書で指定されたアドレスにドメインが存在しない場合、CA は認証局 (CA) にエラーを返します。 SSL と SSL: CERTIFICATE_VERIFY_FAILED
エラーの原因について詳しく説明します。
SSL証明書
SSL 証明書は、企業が Web ブラウザとの安全で暗号化された接続を確立できるようにするデジタル証明書です。 企業が SSL 証明書を持っている場合、企業と Web ブラウザの間で交換されるすべての情報が暗号化されるため、だれもがデータを傍受して読み取ることが困難になります。
これは、クレジット カード番号やログイン資格情報などの機密情報を保護するのに役立つため、企業にとって重要です。
SSL: CERTIFICATE_VERIFY_FAILED
エラーの原因
SSL: CERTIFICATE_VERIFY_FAILED
エラーの背後にはいくつかの理由があります。 それぞれについて以下に説明します。
-
Web サイトの SSL 証明書が無効である可能性があります。これは、Web サイトがクライアントとサーバー間のデータと通信を暗号化するために有効な証明書を使用していないことを意味します。 その結果、ブラウザは Web サイトの身元を確認できません。
これは、セキュリティ リスクになる可能性があります。 これは、データが適切に暗号化されておらず、第三者によって傍受される可能性があることを意味します.
-
別の可能性として、ブラウザが Web サイトの SSL 証明書を認識していない可能性があります。 これは、Web サイトが自己署名証明書または不明な機関からの証明書を使用している場合に発生する可能性があります。
いずれの場合も、ブラウザは Web サイトの ID を適切に確認できず、セキュリティ上のリスクになる可能性があります。
-
最後に、ウェブサイトの SSL 証明書チェーンに問題がある場合、
SSL: CERTIFICATE_VERIFY_FAILED
エラーも発生する可能性があります。 これは、チェーン内の証明書のいずれかが期限切れまたは失効している場合、または Web サイトが古い SSL バージョンを使用している場合に発生する可能性があります。このエラーが表示された場合は、Web サイトの所有者に連絡して、問題を解決するよう依頼する必要があります。
SSL: CERTIFICATE_VERIFY_FAILED
エラーを修正
SSL: CERTIFICATE_VERIFY_FAILED
エラーが表示された場合、コンピューターはアクセスしようとしている Web サイトの SSL 証明書を検証できません。 これは、Web サイトの SSL 証明書の問題、コンピューターの信頼ストア、ネットワークの問題など、さまざまな理由で発生する可能性があります。
SSL: CERTIFICATE_VERIFY_FAILED
エラーを修正するには、その原因を突き止める必要があります。
ウェブサイトの SSL 証明書に問題がありますか? その場合は、別のブラウザーを使用してサイトにアクセスするか、Web サイトの所有者に連絡して知らせてください。
問題がコンピューターのトラスト ストアにある場合は、トラスト ストアを最新の証明書で更新する必要があります。 問題がネットワークにある場合は、ネットワーク接続のトラブルシューティングを行う必要があります。
SSL で未検証のコンテキストを作成して、SSL: CERTIFICATE_VERIFY_FAILED
エラーを修正する
SSL に関して考慮すべき最も重要なことの 1つは、SSL が使用されるコンテキストです。 残念ながら、SSL が使用されるコンテキストは特定の状況によって異なるため、この質問に対する万能の答えはありません。
ただし、より安全な SSL コンテキストを作成するのに役立つ一般的なヒントがいくつかあります。
まず、すべての SSL 接続が強力な暗号化を使用して行われるようにすることが重要です。 これは、SHA-256
や SHA-512
などの強力なアルゴリズムを使用し、すべてのキーの長さが少なくとも 2048 ビットであることを保証することを意味します。
さらに、SSL 接続を確立する前にサーバーの身元を確認することが重要です。 これは、認証局などの信頼できるサードパーティ ソースに対してサーバーの証明書をチェックすることで実行できます。
最後に、SSL 接続が適切に構成されていることを確認することも重要です。 これには、すべての接続が正しいプロトコルと暗号スイートを使用して行われていること、およびすべての証明書が適切に検証されていることを確認することが含まれます。
これらのヒントに従うことで、より安全な SSL コンテキストを作成することができます。これにより、機密データを保護し、通信を非公開に保つことができます。
import ssl
context = ssl._create_unverified_context()
urllib.request.urlopen(req, context=context)
SSL で未検証の HTTP コンテキストを作成して、SSL: CERTIFICATE_VERIFY_FAILED
エラーを修正する
SSL では、サーバーの証明書の検証を単に省略するだけで、検証されていない HTTP コンテキストを作成できます。 クライアントが中間者攻撃に対して脆弱になるため、これはお勧めできません。
ただし、自己署名証明書を使用するサーバーに接続する場合など、場合によっては必要になる場合があります。
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
urllib2.urlopen("https://google.com").read()
pip
コマンドで SSL: CERTIFICATE_VERIFY_FAILED
エラーを修正
pip
で SSL 証明書を更新するには、pip
の最新バージョンがインストールされていることを確認してください。 これを行うには、次のコマンドを実行します。
pip install --upgrade pip
pip
の最新バージョンを取得したら、次のコマンドを実行して SSL 証明書を更新できます。
pip install --upgrade certifi
特定の理由で SSL 証明書を更新する必要がある場合は、pip
コマンドで --force-reinstall
オプションを使用できます。 これにより、pip
は認定パッケージを強制的に再インストールし、既存のファイルを上書きします。
pip install --upgrade certifi --force-reinstall
Requests モジュールを使用して SSL: CERTIFICATE_VERIFY_FAILED
エラーを修正する
Python リクエスト ライブラリは、HTTP リクエストを作成するための優れたツールです。 SSL 検証をバイパスするために、ssl_verify
オプションを False
に設定する必要がある場合があります。
これは、無効または自己署名の SSL 証明書を使用してサーバーに接続しようとしている場合に役立ちます。 このオプションをFalse
に設定することは、中間者攻撃に対して脆弱になる可能性があるため、一般的にはお勧めできません。
requests.get(url, headers=Hostreferer, verify=False)
まとめ
SSL は、サーバーとクライアント間のセキュリティと信頼を提供するプロトコルです。 店舗でクレジット カードを使用する場合など、機密情報を保護する必要がある多くの場合に使用されます。
どうしたの? SSL を使用する場合、python-requests
ライブラリに問題があります。
Python を使用して SSL を使用するサーバーに要求する場合、ライブラリは既定で証明書をチェックして信頼できることを確認します。 問題は、デフォルトの Python インストールに、考えられるすべての SSL 証明書のルート証明書が含まれていないことです。
自己署名 SSL 証明書または Python 証明書ストアにない CA からの証明書を使用するサーバーにリクエストを行うと、リクエストが失敗します。 SSL エラーのエラー コードで HTTP エラーが発生します。
Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.
LinkedIn関連記事 - Python Error
- AttributeError の解決: 'list' オブジェクト属性 'append' は読み取り専用です
- AttributeError の解決: Python で 'Nonetype' オブジェクトに属性 'Group' がありません
- AttributeError: 'generator' オブジェクトに Python の 'next' 属性がありません
- AttributeError: 'numpy.ndarray' オブジェクトに Python の 'Append' 属性がありません
- AttributeError: Int オブジェクトに属性がありません
- AttributeError: Python で 'Dict' オブジェクトに属性 'Append' がありません