Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Membetulkan Ralat 'SSL: CERTIFICATE_VERIFY_FAILED' dalam urllib?

Bagaimana untuk Membetulkan Ralat 'SSL: CERTIFICATE_VERIFY_FAILED' dalam urllib?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-14 01:10:11216semak imbas

How to Fix the

urllib dan "SSL: CERTIFICATE_VERIFY_FAILED" Ralat

Menghadapi ralat "SSL: CERTIFICATE_VERIFY_FAILED" semasa menggunakan urllib, terutamanya apabila isu biasa cuba mengakses laman web HTTPS. Ralat ini biasanya menunjukkan bahawa sijil SSL untuk tapak web sasaran tidak boleh disahkan oleh sistem anda.

Penyelesaian untuk Python 3.6 pada macOS

Jika anda menggunakan Python 3.6 pada macOS, penyelesaiannya ialah memasang pakej certifi dan mencipta pautan simbolik daripada fail sijil OpenSSL ke fail sijil yang dipasang oleh certifi. Langkah ini diperlukan kerana Python 3.6 pada macOS tidak disertakan dengan sijil prapasang.

Untuk menyelesaikan isu:

  1. Pasang pakej certifi: pip install certifi
  2. Jalankan arahan berikut dalam Terminal: /Applications/Python 3.6/Install Certificates.command

Pintas Pengesahan Sijil

Dalam sesetengah kes, anda mungkin mahu memintas pengesahan sijil SSL sama sekali. Ini tidak disyorkan atas sebab keselamatan, tetapi ia boleh dilakukan dengan mengubah suai permintaan urlopen:

import urllib2

# Create a request object
req = urllib2.Request(url)

# Create a context object with no certificate verification
context = ssl.SSLContext()
context.verify_mode = ssl.CERT_NONE

# Use the context object with the request
req = urllib2.Request(url, context=context)

Nota: Kaedah ini hanya boleh digunakan dalam persekitaran yang dipercayai, kerana ia mengurangkan keselamatan permohonan anda.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat 'SSL: CERTIFICATE_VERIFY_FAILED' dalam urllib?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn