2013-02-03 26 views
3

我有一個已經運行了幾年的純CherryPy服務器。我最近決定添加SSL支持。在這種情況下,提供證書和密鑰文件並將正確的值分配給變量cherrypy.server.ssl_certificatecherrypy.server.ssl_private_key就足夠了。使用HTTP代替HTTPS時發出警告

只要有人嘗試使用「http:// ...」而不是「https:// ...」訪問頁面,我想對此更改發出警告。有沒有一種簡單的方法來實現這一點,而不需要對系統進行很多更改另一種選擇是將HTTP訪問重定向到HTTPS-can,這很容易完成?

回答

3

我會創建一個自定義處理程序來實現你所追求的。這會自動重定向到HTTPS。

class Functions(): 
    def check_ssl(self=None): 
     # check if url is in https and redirect if http 
     if cherrypy.request.scheme == "http": 
      cherrypy.HTTPRedirect(Referer.replace("http:", "https:")) 

    cherrypy.tools.Functions = cherrypy.Tool('before_handler', check_ssl) 
+0

確實沒有「如果HTTPS是''''類型的東西?你不能相信任何事情......這似乎有點危險。 – cHao

+0

其實*有*這樣的事情。查看'cherrypy.request.scheme'以獲得更少的片段。 – cHao

+0

感謝您的建議。我不知道計劃。 –