Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.python > #6272

Re: [Python-de] Re: ssl.wrap_socket?

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>

Show all headers | View raw


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 | NextPrevious in thread | Next in thread | Find similar


Thread

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