[Python-es] Ayuda SimpleXMLRPCServer con ssl

Daniel Garcia Moreno dani en danigm.net
Vie Mar 5 22:39:08 CET 2010


El vie, 05-03-2010 a las 15:15 -0500, Boris Perez Canedo escribió:
> Hola,
> 
> 
> Estoy tratando de montar un servidor xml rpc, ya logre hacer basic
> auth,  y que tambien que atendiera peticiones simultaneas pero para
> obtener mas seguridad estoy enredado tratando de hacerlo con ssl.
> 
> Utilice openssl para generar un certificado autofirmado  .pem y  una
> clave privada .pem. Creo que lo que debo hacer es redefinir el metodo
> get_request() que hereda SimpleXMLRPCServer de SocketServer (segun la
> documentacion puede ser redefinido), pero en realidad estoy a ciegas.
> 
> def get_request(self):
> 
>       return self.socket.accept()
> 
> # redefiniendo get_request
> 
> def get_request(self):
>             
>             request, address = self.socket.accept()
>              # de la ayuda de python 2.6 modulo ssl
>              connstream = ssl.wrap_socket(request,
>                                 server_side=True,
>                                 certfile="sslcertificate/mycert.pem",
>                                 keyfile="privatekey/mykey.pem",
>                                 ssl_version=ssl.PROTOCOL_TLSv1)
>             
>             return connstream, address
> 
> Como, hasta donde conozco del asunto, ssl hereda de socket debe
> redefinir los metodos read, write, etc para su proposito, pero en
> esencia deberia ser transparente para SimpleXMLRPCServer.
> 
> Echo a andar el servidor y cuando uso xmlrpclib para conctarme y
> acceder a sus metodos, por ejemplo:
> 
> #ejemplo de cliente
> import xmlrpclib
> 
> conn = xmlrpclib.ServerProxy(https://myuser:mypassword@localhost:8500)
> print conn.test() # test es un metodo de mi servidor
> 
> Pues se queda colgado ni uno ni el otro me dan error ni nada.
> 

Por si te sirve de algo yo tengo aquí un servidor xmlrpc con ssl que
conseguí de alguna parte:

http://git.danigm.net/gitphp/index.php?p=geco.git&a=blob&h=0d318d739eb3df110832176ec9e63f0289f32f48&hb=1a2a1f9d0a111bdf6fb16dc011cb595431c9ceed&f=src/gecod/gecod/secure_xmlrpc.py

Y aquí un ejemplo de uso:

http://git.danigm.net/gitphp/index.php?p=geco.git&a=blob&h=21c2da7b42f1b67354558c5978cf27d7074ab3a3&hb=1a2a1f9d0a111bdf6fb16dc011cb595431c9ceed&f=src/gecod/gecod/xmlrpc_frontend.py

------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Esta parte del mensaje está firmada digitalmente
URL: <http://mail.python.org/pipermail/python-es/attachments/20100305/f19693ef/attachment.pgp>


Más información sobre la lista de distribución Python-es