Peter J. Holzer <hjp-usen...@hjp.at> wrote:
> On 2025-03-23 09:11, Ulli Horlacher <frams...@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: horlac...@tik.uni-stuttgart.de
Allmandring 30a                Tel:    ++49-711-68565868
70569 Stuttgart (Germany)      WWW:    https://www.tik.uni-stuttgart.de/
_______________________________________________
python-de Mailingliste -- python-de@python.org
Zur Abmeldung von dieser Mailingliste senden Sie eine Nachricht an 
python-de-le...@python.org
https://mail.python.org/mailman3/lists/python-de.python.org/
Mitgliedsadresse: arch...@mail-archive.com

Reply via email to