Tôi có một máy chủ cơn lốc xoáy mà cung cấp một kết nối https với một chứng chỉ tự ký kết mà tôi tạo ra theo cách này:HTTPS Python client
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
Mã của máy chủ như sau:
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()
Tôi muốn có một khách hàng python kết nối với máy chủ và kiểm tra xem máy chủ có phải là máy chủ phù hợp không (tôi đoán qua chứng chỉ của nó). Đối với thời điểm này tôi đã làm một khách hàng đơn giản như thế này:
import httplib
HOSTNAME='localhost'
conn = httplib.HTTPSConnection(HOSTNAME)
conn.putrequest('GET','/')
conn.endheaders()
response = conn.getresponse()
print response.read()
Những gì bạn sẽ đề nghị tôi làm (Khách hàng sẽ về sau là một ứng dụng di động tôi chỉ sử dụng python cho prototyping)?
Cảm ơn.
Nếu bạn có thể cung cấp cho tôi một khách hàng trong Java mà cũng là OK. – lc2817
liên quan http://www.heikkitoivonen.net/blog/2010/08/23/ssl-in-python-2-7/ – jfs
liên quan: http://stackoverflow.com/questions/1087227/validate-ssl-certificates -with-python – jfs