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/