Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.python > #6272
| From | Ulli Horlacher <framstag@rus.uni-stuttgart.de> |
|---|---|
| Newsgroups | de.comp.lang.python |
| Subject | Re: [Python-de] Re: ssl.wrap_socket? |
| Date | 2025-03-23 10:08 +0000 |
| Organization | University of Stuttgart, FRG |
| Message-ID | <vromih$rg9$2@rusnews.informatik.uni-stuttgart.de> (permalink) |
| References | <vrno65$k58$1@rusnews.informatik.uni-stuttgart.de> <7d259392-b0cd-4ed8-81df-b2194f467db8@chrisarndt.de> <vroj87$rg9$1@rusnews.informatik.uni-stuttgart.de> <slrnvtvll1.3l8sk.hjp-usenet4@trintignant.hjp.at> |
Peter J. Holzer <hjp-usenet4@hjp.at> wrote:
> On 2025-03-23 09:11, Ulli Horlacher <framstag@rus.uni-stuttgart.de> wrote:
>> Ich hab das nun so probiert:
>>
>> sock = socket.create_connection((server,port))
>> (...)
>> SSLContext = ssl.create_default_context()
>
> Du willst es den Lesern Deines Codes auch künstlich schwer machen, oder?
> Eine Variable so zu nennen wie eine Klasse der Library, die man gerade
> verwendet, ist ziemlich verwirrend.
Ich dachte, das muss so sein?
Nein, absichtlich Konfusion stiften ist nicht mein Ziel :-}
>> sock = SSLContext.wrap_socket(sock)
>>
>> Das ergibt leider die Fehlermeldung:
>>
>> File "/local/home/framstag/python/./fexit.py", line 906, in http_connect
>> sock = SSLContext.wrap_socket(sock)
>> File "/usr/lib/python3.10/ssl.py", line 513, in wrap_socket
>> return self.sslsocket_class._create(
>> File "/usr/lib/python3.10/ssl.py", line 1028, in _create
>> raise ValueError("check_hostname requires server_hostname")
>> ValueError: check_hostname requires server_hostname
>
> Dann gib den Namen halt an. wrap_socket hat einen Parameter dafür:
>
> https://docs.python.org/3/library/ssl.html#ssl.SSLContext.wrap_socket
Ahhhh, man muss den Servernamen nun doppelt angeben!
Einmal bei Erzeugung des socket und dann nochmal beim SSL wrap
Das war mir nicht klar.
Ok, so funktionierts nun:
sock = socket.create_connection((server,port))
(...)
if port == 443:
sslctx = ssl.create_default_context()
sock = sslctx.wrap_socket(sock,server_hostname=server)
Jetzt kann ich sock zur Kommunikation verwenden, egal ob HTTP oder HTTPS.
--
Ullrich Horlacher Server und Virtualisierung
Rechenzentrum TIK
Universitaet Stuttgart E-Mail: horlacher@tik.uni-stuttgart.de
Allmandring 30a Tel: ++49-711-68565868
70569 Stuttgart (Germany) WWW: https://www.tik.uni-stuttgart.de/
Back to de.comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar
ssl.wrap_socket? Ulli Horlacher <framstag@rus.uni-stuttgart.de> - 2025-03-23 01:29 +0000
[Python-de] Re: ssl.wrap_socket? Christopher Arndt <chris@chrisarndt.de> - 2025-03-23 03:42 +0100
Re: [Python-de] Re: ssl.wrap_socket? Ulli Horlacher <framstag@rus.uni-stuttgart.de> - 2025-03-23 09:11 +0000
Re: [Python-de] Re: ssl.wrap_socket? "Peter J. Holzer" <hjp-usenet4@hjp.at> - 2025-03-23 10:38 +0100
Re: [Python-de] Re: ssl.wrap_socket? Ulli Horlacher <framstag@rus.uni-stuttgart.de> - 2025-03-23 10:08 +0000
Re: [Python-de] Re: ssl.wrap_socket? Ulli Horlacher <framstag@rus.uni-stuttgart.de> - 2025-03-23 10:29 +0000
[Python-de] Re: ssl.wrap_socket? Hartmut Goebel <h.goebel@goebel-consult.de> - 2025-03-23 16:25 +0100
csiph-web