У меня есть сервер на основе ThreadingTCPServer
.Теперь я хочу добавить поддержку SSL на этот сервер.Без SSL он работает нормально, но с SSLv3 я не могу подключить клиента к серверу, он всегда выдает исключение: Error 111 Connection Refused
.Ошибка в том, что на этом порту нет SSL-сервера.
Я добавил поддержку SSL на основе примера, найденного здесь, в Stackoverflow.Вот мой код:
Сервер:
class BeastServer(SocketServer.ThreadingMixIn, SocketServer.TCPServer):
def __init__(self, server_address, RequestHandlerClass, bind_and_activate=True):
SocketServer.BaseServer.__init__(self, server_address,
RequestHandlerClass)
ctx = SSL.Context(SSL.SSLv3_METHOD)
cert = 'server.pem'
key = 'key.pem'
ctx.use_privatekey_file(key)
ctx.use_certificate_file(cert)
self.socket = SSL.Connection(ctx, socket.socket(self.address_family,
self.socket_type))
if bind_and_activate:
#self.server_bind()
#self.server_a
Клиент:
class Client(object) :
def verbinden (self, ip_) :
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ssl_sock = ssl.wrap_socket(s, cert_reqs=ssl.CERT_REQUIRED,
ssl_version=ssl.PROTOCOL_SSLv3, ca_certs='server.pem')
ssl_sock.connect((ip_, 10012))
return ssl_sock
Файл ключа и сертификата создается с использованием открытого SSL.Я надеюсь, что кто-то может сказать мне, в чем проблема.
спасибо за вашу помощь
С наилучшими пожеланиями, Патрик