> Hola > > Estoy intentando usar SSL sobre un socket que tengo establecido entre un > cliente y un servidor pero no consigo que me funcione. Me da un error al > inicializar el SSL. > > Comentar que uso Python 2.5 y uso `socket.ssl()' en vez de > `ssl.wrap_socket()'. > > El error que me da es: > socket.sslerror: (1, 'error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown > protocol') > > El c�digo que ejecuto es: > > ############# Cliente #############
> import socket > s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) > s.connect(('localhost', 6666)) > ss = socket.ssl(s) > ################################### > > ############## Servidor ########## > import socket > s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) > s.bind(('', 6666)) > s.listen(5) > s1, c = s.accept() > ss = socket.ssl(s1) > ################################## > > He intentado a usar `socket.ssl()' en diferentes sitios como antes y > depu�s del `accept()' y del `connect()' pero no consigo solucionarlo. > El error me da cuando intento empezar a utilizar SSL porque ni siquiera > llego a hacer un read/write sobre el `ss'. > > �Alguna pista de que estoy haciendo mal? > > > Un saludo y gracias de antemano. > -- > Ricardo� Hola Ricardo Me parece que no tienes definido el protocolo ni el certificado que vas a usar usa PROTOCOL_SSLv23 que me parece viene por defecto para los clientes, almenos eso pasa para xmlrpclib. Trata de poner esto en el servidor, a mi me funciono para crear conexiones "seguras" entre un servidor xmlrpc y en cliente. #de la ayuda de python 2.6 import socket, ssl bindsocket = socket.socket() bindsocket.bind(('localhost', 8000)) bindsocket.listen(5) newsocket, addr = bindsocket.accept() sslsocket�=ssl.wrap_socket(newsocket, ������������������������������� server_side=True, ������������������������������� certfile="el path�a tu certificado", ������������������������������� keyfile="el path a tu llave privada", ������������������������������� ssl_version=ssl.PROTOCOL_SSLv23) usa ahora sslsocket para lo que quieras hacer. Para generar el certificado autofirmado y la llave usa el comando openssl Saludos, Boris. --- La mejor vacuna contra el virus A(H1N1) es la higiene personal
_______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/