> 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/

Responder a