Hallo,
Du kannst das Zertifikat vom Server runterladen (zum Beispiel mit firefox) und
es dann beim urlopen mitgeben:
response = urllib.request.urlopen(url, cafile='Pfad_zum_zertifikat')
Damit sollte es dann gehen.
Muss man natürlich monitoren damit du mitkriegst wenn sich das Zertifikat
ändert.
Gruss
HP
On Fri, 2017-12-01 at 10:00 +0100, Andreas Tille wrote:
> Hallo,
>
> führe ich folgenden Python-Code
>
> #!/usr/bin/python3
>
> import urllib.request, urllib.error, urllib.parse
> import sys
>
> url="https://invalid.certificate.local/"
>
> try:
> response = urllib.request.urlopen(url)
> except urllib.error.URLError as err:
> sys.stderr.write('Unable to read URL %s\n' % url)
> sys.stderr.write(str(err)+'\n')
> exit(1)
>
> print("URL %s successfully opened" % url)
>
>
>
> auf einem Jessie-Rechner aus, geht das gut:
>
>
> URL https://invalid.certificate.local/ successfully opened
>
>
> Führe ich den gleichen Code auf einem Stretch-Rechner aus, erhalte ich:
>
>
> Unable to read URL https://invalid.certificate.local/
> <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed
> (_ssl.c:720)>
>
>
> Nun könnte man sagen: "Its no bug its a feature" - aber ich muß nun mal
> trotzdem auf diese URL zugreifen. Die Unterschiede erstrecken sich
> nicht nur auf diesen kurzen Python-Beispielcode. Auf einem Stretch-Rechner
> versagen bei der URL auch Firefox und Chromium, was doch recht nervig ist.
>
> Ich habe auch mal versucht, auf dem Stretch-Rechner eine Jessie-chroot
> mit Firefox zu installieren. So einfach läßt sich das Problem leider
> nicht umgehen.
>
> Hat jemand eine Idee, wie ich unter Stretch auf die URL zugreifen kann?
>
> Viele Grüße
>
> Andreas.
>
Attachment:
signature.asc
Description: This is a digitally signed message part