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:
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!