2016-09-06 27 views
17

Python3'ü python.org'dan yükledim ve pip ile paketleri yüklemede sorun yaşıyorum. Tasarım gereği, tüm ssl bağlantılarını kendi sertifikasıyla istifa ederek tüm paketleri (ssl dahil) inceleyen, ağda bir ortadaki paket inceleme cihazı vardır. GPO'nun bir parçası, özel kök sertifikasını Windows Anahtar Deposu'na aktarır.Windows'da Python tarafından kullanılan CA Store'a özel bir CA Kök sertifikası nasıl eklenir?

Java kullanırken, herhangi bir harici https sitesine erişmem gerekirse, Otomatik İmzalı CA sertifikasına güvenmek için JVM'deki ipuçlarını manuel olarak güncellemem gerekir.

Bunu python için nasıl yapabilirim? Şu anda, pip kullanarak paketleri yüklemeye çalıştığımda, anlaşılır şekilde harika [SSL: CERTIFICATE_VERIFY_FAILED] hatalarım var.

--trusted-host parametresini kullanarak bunları yok sayabiliriz, ancak yüklemeye çalıştığım her paket için bunu yapmak istemiyorum.

Python'un kullandığı CA Sertifika deposunu güncellemenin bir yolu var mı?

+0

Olası çoğaltılacak [pip yüklemesi başarısız "bağlantı hatası: \ [SSL: CERTIFICATE \ _VERIFY \ _FAILED \] sertifikası doğrulanmadı (\ _ssl.c: 598)"] (http://stackoverflow.com/questions/ 25981703/pip-install-ile-bağlantı-hata-ssl-sertifika-doğrulama-başarısız-certi) – rfkortekaas

+0

@rfkortekaas benzer evet. Referans verdiğiniz sorunun, sorunu çözmek için ne yapması gerektiğini ve önerilen tüm çözümlerin her bir aramaya manuel olarak argüman sağlamayı içerdiğinden, bunun bir kopyası olduğu konusunda hemfikir değilim. Windows'da kullandığı python güven deposunu kullanarak bu kesin çözümlerden nasıl kaçınıldığını özel olarak soruyorum. –

+0

Küresel anahtar deposunun kullanımı dahil olası tüm seçenekleri açıklayan kenorb'un cevabına bakın. – rfkortekaas

cevap

7

Çalıştır: sertifikayı doğrulamak için kullanılan geçerli yolları denetlemek için python -c "import ssl; print(ssl.get_default_verify_paths())". Şirketinizin kök sertifikasını bunlardan birine ekleyin.

openssl_capath_env yolu, ortam değişkenine işaret eder: SSL_CERT_DIR.

SSL_CERT_DIR yoksa, bunu oluşturmanız ve dosya sisteminizdeki geçerli bir klasöre yönlendirmeniz gerekir. Daha sonra kullanmak için sertifikanızı bu klasöre ekleyebilirsiniz.

+5

, Windows'da bulunmayan '/ usr/local/ssl/certs' değerini döndürür. –

+0

Sonunda başka bir projeye çekildikten sonra bunu yapmak için uğraştım ve @ColinTalbert'e benzer bir şekilde ex-existant olan bir klasöre/usr/local/ssl/certs 'i işaret ediyor. –

+0

Sorumu düzenledim ve umarım bu durumu çözer. – rfkortekaas

İlgili konular