Ich versuche, eine Python-Datei PyPI über twine upload <file>
zu laden, aber ich erhalte einen SSL-Fehler:Python SSL-Zertifikat-Validierung auf einiger Verteilung fehlschlägt Befehle
C:\pypubsub>twine upload dist\PyPubSub-4.0.0rc1-py3-none-any.whl
Uploading distributions to https://upload.pypi.org/legacy/
Uploading PyPubSub-4.0.0rc1-py3-none-any.whl
SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645)
Anderen Python-Skripte, die SSL haben das gleiche Problem zu verwenden, Beispiel
- mit
python setup.py bdist_wheel upload <my_package>
- mit
pip install <any_package>
; aber es kann ich--trusted-host pypi.python.org
einenpip install
Befehl hinzufügen und die Installation und das Herunterladen von Abhängigkeiten erfolgreich sein werde
Dies geschieht auf meinem Firmenlaptop, ob zu Hause oder arbeiten, aber es funktioniert nicht auf meinem persönlichen Laptop passieren.
Um dies zu umgehen, habe ich versuchte im Grunde SO answer to similar problem (dh das Zertifikat exportieren, dass Garn zu validieren versucht - vermutlich, dass die pypi.python.org - und dann Bindfäden sagen, es zu benutzen):
- von Chrome, ging ich zu https://pypi.pythong.org, klickte das Schloss neben der URL, dann Details, Zertifikat anzeigen, Details, In Datei kopieren. Dies erzeugte eine .CER-Datei.
- Ich habe SSL Converter verwendet, um die .CER-Datei vom DER-Format in das PEM-Format zu konvertieren. Dies erstellt eine .CRT-Datei.
- Ich lief Schnur als
twine upload <my_package> --cert <path to CRT file>
; Diesmal war der SSL-FehlerSSLError: [SSL] PEM lib (_ssl.c:2846)
.
ich versuchte dann durch c:\Python35\lib\ssl.py
in Opting Out wie beschrieben Patchen von Serverzertifikatvalidierungs entscheiden sich: I die Linie _create_default_https_context = create_default_context
durch _create_default_https_context = _create_unverified_context
ersetzt. Die erneute Ausführung des Befehls twine
ist mit dem ursprünglichen Fehler CERTIFICATE_VERIFY_FAILED erneut fehlgeschlagen.
Ich bin nicht so vertraut mit Zertifikaten, so dass ich jetzt ratlos bin, was ich noch versuchen sollte.
Thx @ Karanja für die Antwort. Aber es scheint, dass dies bestätigt, dass die Schritte 1 bis 3 meines Posts funktionieren sollten, aber vielleicht habe ich Schritt 2 nicht richtig gemacht? – Schollii
@Schollii sind Sie hinter einer Unternehmensfirewall? Wenn ja, haben Sie Zugriff auf die https SSL-Zertifikate? Sie müssen die '.cer' Datei in eine' .pem' Datei umwandeln. –
also muss ich die https ssl certs von unserer IT bekommen? Es ist also eine Reihe von SSL-Zertifikaten, nicht nur für die Seite, mit der ich Probleme habe? – Schollii