2017-03-01 69 views
6

SSL "hatalı anlaşma" hatası alıyorum. Bu soruna en benzer yanıtlar, 1024bit sertifikalı eski kütüphanelerden kaynaklanıyor gibi görünmektedir. uyumsuzluk, vb ... Ben düşünüyorum Ben güncel ve neden bu hatayı alıyorum anlayamıyorum.Python isteklerine güncelleştirilmiş bağımlılıklara rağmen SSL hatası

AYAR:

  • istekleri 2.13.0
  • sertifi 2017/01/23
  • '2016 OpenSSL 1.0.2g 1 Mar'

Bu API düşüyorum (2048bit sertifikası anahtar): https://api.sidecar.io/rest/v1/provision/application/device/count/

Ve bu hatayı alıyorum: Ben istekleri verify=False açarsanız 210

Ben atlayabilir, https://github.com/sidecar-io/sidecar-python-sdk/blob/master/sidecar.py

ait l.44 Bak, ama belgelendirme başarısız neden ben doğrusu anlamaya ederim.

Her türlü yardım büyük beğeni toplamaktadır; Teşekkürler!

cevap

6

Erişim yaptığınız sunucu hatalı ayarlandığından, kurulumunuz veya kodunuzda bir hata olmadığı için doğrulama başarısız olur. report from SSLLabs baktığımızda Eğer bu sunucu güvenilen kök ara sertifika eksik ve böylece müşteri güven zinciri oluşturmak edemez bir sertifika zinciri gönderir demektir

This server's certificate chain is incomplete. Grade capped to B.

görüyoruz. Çoğu masaüstü tarayıcısı, eksik sertifikayı başka bir yerden almaya çalışarak bu soruna geçici bir çözüm getirir; ancak normal TLS kitaplıkları bu durumda başarısız olur. Bu soruna geçici bir çözüm için güvenilir olarak açıkça eksik zincir sertifika eklemek gerekir:

import requests 
requests.get('https://api.sidecar.io', verify = 'mycerts.pem') 

mycerts.pem eksik ara sertifikayı ve güvenilen kök sertifika içermelidir. mycerts.pem için test edilmiş bir sürüm http://pastebin.com/aZSKfyb7'da bulunabilir.

+0

Harika, içgörü için teşekkürler! –

0

Bu, sorununuz için geçici çözüm olarak yardımcı olabilir.

print(requests.get(url, proxies,verify = False))