Re: [Python-es] Socket SSL

2010-03-17 Por tema Boris Perez Canedo


 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', )) 
 ss =
socket.ssl(s) 
 ### 
 

## Servidor ## 
 import socket 
 s =
socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
 s.bind(('', )) 
 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/


Re: [Python-es] Socket SSL

2010-03-17 Por tema Boris Perez Canedo


 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()'. 

Disculpa me salte
esta parte.
Nunca he utilizado socket.ssl() pero me imagino que deba ser similar, o
sea, pienso que debes crear los ficheros: certificado y llave�privada y que 
tambien
debas especificar la version del ssl como te decia en el comentario anterior.

Lo del error creo que se debe a que no puede hacer el handshake...

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/