2016-12-16 4 views
1

ich eine python3 django Website mit Zertifikat von letsencryptPython-Anfragen an die lokale Adresse wirft SSLError

Alles in Ordnung, außer Anfrage an die lokale Adresse mit Python-Anfragen:

response = requests.post('http://127.0.0.1:8100', data=data) 

Und es hat sehr seltsames Verhalten :

Manchmal habe ich 200, aber nach supervisorctl restart mywebsite wirft es SSLError

Dann habe ich gemacht:

response = requests.post('http://127.0.0.1:8100', data=data, verify=True) 

Alles ist in Ordnung, bis ich supervisorctl restart mywebsite noch einmal machen, und es wirft SSLError O_o ​​und arbeitet jetzt nur mit

response = requests.post('http://127.0.0.1:8100', data=data) 

So ist der letzte Arbeitscode lautet:

try: 
    response = requests.post('http://127.0.0.1:8100', data=data, verify=True) 
except: 
    try: 
     response = requests.post('http://127.0.0.1:8100', data=data) 
    except: 
     response = requests.post('http://127.0.0.1:8100', data=data, verify=False) 

Und natürlich ist dies nicht der beste Plan)

Big thx für Ratschläge

+0

Bitte überprüfen Sie meine Antwort unten und upvote oder markieren Sie als akzeptiert, wenn es hilfreich war. Danke –

Antwort

0

Wahrscheinlich Ihre Web-App ist eine Umleitung von http:// zu https:// Ausgabe. Sie können dies überprüfen, indem Sie die Antwortheader mit curl -v betrachten. Nach der Umleitung erhalten Sie wahrscheinlich den SSL-Fehler wegen der Verwendung von localhost anstelle eines Domänennamens:

Sie können kein Zertifikat für localhost erhalten; Die Zertifizierungsstelle kann nur Zertifikate für öffentlich sichtbare, global eindeutige Domänennamen ausstellen. localhost zählt nicht, und die Zertifizierungsstelle darf keine Zertifikate dafür ausgeben. - https://community.letsencrypt.org/t/can-i-test-lets-encrypt-client-on-localhost/15627

edit:

Versuchen Sie, die ursprüngliche Anforderung auf der https:// URL mit verify=False tun.

+0

Hallo, Sory für diese späte Antwort, versuchte ich https http: response = requests.post ('https://127.0.0.1:8100', Daten = Daten, überprüfen = True) Es funktioniert nicht, sehr lange Anfrage mit Timeout – MaxCore

+0

Haben Sie meinen letzten Bearbeitungsvorschlag versucht? > Versuchen Sie, die erste Anfrage für die URL https: // mit verify = False auszuführen. –

Verwandte Themen