Я пытаюсь настроить сервер и клиент, используя веб-сокеты с TLS. Я сделал фиктивный сертификат с помощью mkcert. Я выполнил базовую настройку на https://docs.python.org/3/library/ssl.html. Но сразу же получаю ошибку хранилища доверенных сертификатов и не могу от нее избавиться. Я использую ltsc Windows 10 с Python3.14.2
Что я пробовал:
import os
os.environ["SSL_NO_TRUSTSTORE"] = "1" # and "0"
ни то, ни другое не сработало. Ошибка осталась прежней
И на сервере, и на клиенте добавлено «do_handshake_on_connect = False» в функцию Wrap_socket(). Ошибка осталась прежней.
Проверил, что сертификаты обнаруживаются путем их перемещения. Сразу же появилась другая ошибка о том, что действительный сертификат не найден, поэтому я уверен, что путь правильный.
У клиента та же проблема и практически такая же ошибка, поэтому я предполагаю, что это что-то с моими сертификатами или с тем, как Python проверяет мои сертификаты. Но я не могу заставить его даже прекратить проверку моих сертификатов.
Заранее благодарю за любую помощь!
Код:
import socket
import select
import env
import random
import string
import ssl
IP = env.IP
PORT = env.PORT
context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
context.load_cert_chain('./SSL/server.pem', './SSL/server-key.pem')
# Create a socket
# socket.AF_INET - address family, IPv4, some other possible are AF_INET6, AF_BLUETOOTH, AF_UNIX
# socket.SOCK_STREAM - TCP, conection-based, socket.SOCK_DGRAM - UDP, connectionless, datagrams, socket.SOCK_RAW - raw IP packets
unsecure_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# SO_ - socket option
# SOL_ - socket option level
# Sets REUSEADDR (as a socket option) to 1 on socket
unsecure_server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
# Bind, so server informs operating system that it's going to use given IP and port
# For a server using 0.0.0.0 means to listen on all available interfaces, useful to connect locally to 127.0.0.1 and remotely to LAN interface IP
unsecure_server_socket.bind((IP, PORT))
# This makes server listen to new connections
unsecure_server_socket.listen()
server_socket = context.wrap_socket(unsecure_server_socket, server_side=True)
Ошибка:
Traceback (most recent call last):
File "C:\Server.py", line 34, in
server_socket = context.wrap_socket(unsecure_server_socket, server_side=True)
File "C:\Users\Name\AppData\Local\Programs\Python\Python314\Lib\site-packages\pip\_vendor\truststore\_api.py", line 130, in wrap_socket
_verify_peercerts(ssl_sock, server_hostname=server_hostname)
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Name\AppData\Local\Programs\Python\Python314\Lib\site-packages\pip\_vendor\truststore\_api.py", line 338, in _verify_peercerts
cert_bytes = _get_unverified_chain_bytes(sslobj)
File "C:\Users\Name\AppData\Local\Programs\Python\Python314\Lib\site-packages\pip\_vendor\truststore\_api.py", line 311, in _get_unverified_chain_bytes
unverified_chain = sslobj.get_unverified_chain() or ()
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "C:\Users\Name\AppData\Local\Programs\Python\Python314\Lib\ssl.py", line 1176, in get_unverified_chain
chain = self._sslobj.get_unverified_chain()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'get_unverified_chain'
Подробнее здесь: https://stackoverflow.com/questions/798 ... verified-c
Python SSL «AttributeError: объект 'NoneType' не имеет атрибута 'get_unverified_chain'» [закрыто] ⇐ Python
Программы на Python
1769850700
Anonymous
Я пытаюсь настроить сервер и клиент, используя веб-сокеты с TLS. Я сделал фиктивный сертификат с помощью mkcert. Я выполнил базовую настройку на https://docs.python.org/3/library/ssl.html. Но сразу же получаю ошибку хранилища доверенных сертификатов и не могу от нее избавиться. Я использую ltsc Windows 10 с Python3.14.2
Что я пробовал:
import os
os.environ["SSL_NO_TRUSTSTORE"] = "1" # and "0"
ни то, ни другое не сработало. Ошибка осталась прежней
И на сервере, и на клиенте добавлено «do_handshake_on_connect = False» в функцию Wrap_socket(). Ошибка осталась прежней.
Проверил, что сертификаты обнаруживаются путем их перемещения. Сразу же появилась другая ошибка о том, что действительный сертификат не найден, поэтому я уверен, что путь правильный.
У клиента та же проблема и практически такая же ошибка, поэтому я предполагаю, что это что-то с моими сертификатами или с тем, как Python проверяет мои сертификаты. Но я не могу заставить его даже прекратить проверку моих сертификатов.
Заранее благодарю за любую помощь!
Код:
import socket
import select
import env
import random
import string
import ssl
IP = env.IP
PORT = env.PORT
context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
context.load_cert_chain('./SSL/server.pem', './SSL/server-key.pem')
# Create a socket
# socket.AF_INET - address family, IPv4, some other possible are AF_INET6, AF_BLUETOOTH, AF_UNIX
# socket.SOCK_STREAM - TCP, conection-based, socket.SOCK_DGRAM - UDP, connectionless, datagrams, socket.SOCK_RAW - raw IP packets
unsecure_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# SO_ - socket option
# SOL_ - socket option level
# Sets REUSEADDR (as a socket option) to 1 on socket
unsecure_server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
# Bind, so server informs operating system that it's going to use given IP and port
# For a server using 0.0.0.0 means to listen on all available interfaces, useful to connect locally to 127.0.0.1 and remotely to LAN interface IP
unsecure_server_socket.bind((IP, PORT))
# This makes server listen to new connections
unsecure_server_socket.listen()
server_socket = context.wrap_socket(unsecure_server_socket, server_side=True)
Ошибка:
Traceback (most recent call last):
File "C:\Server.py", line 34, in
server_socket = context.wrap_socket(unsecure_server_socket, server_side=True)
File "C:\Users\Name\AppData\Local\Programs\Python\Python314\Lib\site-packages\pip\_vendor\truststore\_api.py", line 130, in wrap_socket
_verify_peercerts(ssl_sock, server_hostname=server_hostname)
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Name\AppData\Local\Programs\Python\Python314\Lib\site-packages\pip\_vendor\truststore\_api.py", line 338, in _verify_peercerts
cert_bytes = _get_unverified_chain_bytes(sslobj)
File "C:\Users\Name\AppData\Local\Programs\Python\Python314\Lib\site-packages\pip\_vendor\truststore\_api.py", line 311, in _get_unverified_chain_bytes
unverified_chain = sslobj.get_unverified_chain() or ()
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "C:\Users\Name\AppData\Local\Programs\Python\Python314\Lib\ssl.py", line 1176, in get_unverified_chain
chain = self._sslobj.get_unverified_chain()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'get_unverified_chain'
Подробнее здесь: [url]https://stackoverflow.com/questions/79879882/python-ssl-attributeerror-nonetype-object-has-no-attribute-get-unverified-c[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия