> 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
[email protected]
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/