Tengo un servidor tornado que proporcionan una conexión HTTPS con un certificado firmado que me genera de esta manera:HTTPS Python cliente
openssl genrsa -out privatekey.pem 1024
openssl req -new -key privatekey.pem -out certrequest.csr
openssl x509 -req -in certrequest.csr -signkey privatekey.pem -out certificate.pem
El código del servidor es la siguiente:
import tornado.ioloop
import tornado.web
import tornado.httpserver
import os
class MainHandler(tornado.web.RequestHandler):
def get(self):
print "new client "+str(self)
self.write("Hello, world")
application = tornado.web.Application([
(r"/", MainHandler),
])
http_server = tornado.httpserver.HTTPServer(application,
ssl_options={
"certfile": os.path.join("./", "certificate.pem"),
"keyfile": os.path.join("./", "privatekey.pem"),
})
if __name__ == "__main__":
http_server.listen(443)
tornado.ioloop.IOLoop.instance().start()
Quiero tener un cliente de Python que se conecte al servidor y verifique que el servidor sea el correcto (supongo que a través de su certificado). Para el momento en que lo hicieron un cliente simple como esto:
import httplib
HOSTNAME='localhost'
conn = httplib.HTTPSConnection(HOSTNAME)
conn.putrequest('GET','/')
conn.endheaders()
response = conn.getresponse()
print response.read()
¿Qué sugieres que haga (El cliente será más tarde ser una aplicación móvil Yo sólo uso de Python para la creación de prototipos)?
Gracias.
Si usted me puede proporcionar a un cliente en Java que también está bien. – lc2817
relacionado http://www.heikkitoivonen.net/blog/2010/08/23/ssl-in-python-2-7/ – jfs
relacionado: http://stackoverflow.com/questions/1087227/validate-ssl-certificates -with-python – jfs