2012-11-20 7 views
9

Ben bir yeniyim, Tornado. Girdiğim zamanTornado'da HTTPS protokolü ile bir istek nasıl ele alınır?

import tornado.ioloop 
import tornado.web 
import tornado.httpserver 

class HelloHandler(tornado.web.RequestHandler): 
    def get(self): 
     self.write("Hello, world!") 

application = tornado.web.Application([ 
    (r"/", HelloHandler) 
]) 

http_server = tornado.httpserver.HTTPServer(application) 

if __name__ == "__main__": 
    http_server.listen(80) 
    # http_server.listen(443) 
    tornado.ioloop.IOLoop.instance().start() 

: Ve böyle “Merhaba Dünya" kodu ile benim öğrenme başlar: tarayıcısı kısmındaki 'http // localhost', nasıl çalıştığını ve baskılar

"Hello, world!" 

Ama Ben denemedim isteği "https: // localhost"?:

Error 102 (net::ERR_CONNECTION_REFUSED): The server refused the connection. 

nasıl Https protokolü isteği ile başa çıkmak için bana söyleyebilir çevrimiçi Tornado hakkında çok az belge vardır

, onunla döner
+0

Gerekli sertifikaları/anahtar dosyalarını oluşturdunuz mu? HTTPS’den çok daha fazlası var, sadece "S". –

+0

Sertifikalar/anahtar dosyaları üretilsin mi? Sanırım gitmem gereken çok yol var. – Leonard

+0

Hi @PaulC Öneriniz için teşekkür ederiz. Openssl'ı kurdum ve kendi anahtarımı ve crtimi oluşturdum. Ayrıca demikl sayesinde ssl_options'a anahtar ve crt ekledikten sonra Hello World programım işe yarıyor! :) – Leonard

cevap

15

tornado.httpserver documentation göre, daha sonra HTTPS portu (443) bağlanan, onun kurucusuna ssl_options sözlük argüman iletilmesi gerekir:

http_server = tornado.httpserver.HTTPServer(applicaton, ssl_options={ 
    "certfile": os.path.join(data_dir, "mydomain.crt"), 
    "keyfile": os.path.join(data_dir, "mydomain.key"), 
}) 

http_server.listen(443) 

mydomain.crt SSL sertifikası ve mydomain.key SSL özel anahtar olmalıdır.

+1

Teşekkürler! @Paul C ve yardımlarınızla. Kasırga Merhaba dünya HTTPS çalışır. – Leonard

+1

İsterseniz kolayca başka bir SSL olmayan örnek oluşturabileceğinizi unutmayın. (En azından kullanıcıları HTTP'den HTTPS'ye yönlendirmek için.) – tiktak