2017-03-19 5 views
1

내 서버에서 https/ssl 연결을 사용하려고합니다. 인증서와 열쇠가 있습니다. http://webpy.org/cookbook/ssl의 예제를 사용해 보았지만 https가 아닌 http를 사용합니다. 내 web.py 버전은 최신 (0.38),하지만 난이 오류가 발생한 사이트 aswell에 제시된 기존의 구현, 사용하려고했습니다 라인에서web.py - Python 2.7에서 ssl 세션을 만들 수 없습니다.

Traceback (most recent call last): 
File "/path/server.py", line 7, in <module> 
from web.wsgiserver.ssl_builtin import BuiltinSSLAdapter 
File "/Library/Python/2.7/site-packages/web/wsgiserver/ssl_builtin.py", line 14, in <module> 
from cherrypy import wsgiserver 
ImportError: cannot import name wsgiserver 

:

from web.wsgiserver.ssl_builtin import BuiltinSSLAdapter 

모든 솔루션? (이전 버전의 web.py에는 적합하지만 첫 번째 구현에서는 사용하기 때문에 오류가 발생하지는 않습니다.)

감사

편집 : 내가 실행 해요 코드 :

from web.wsgiserver import CherryPyWSGIServer 
CherryPyWSGIServer.ssl_certificate = "/file/my.crt" 
CherryPyWSGIServer.ssl_private_key = "/file/my.key" 

이 작업을 수행 :

import sys 
import web 
from web.wsgiserver import CherryPyWSGIServer 

from utils.tools import Tools 

from pages.index import index 
from pages.search import search 
from pages.update_location import update_location 
from pages.add_sn_tracking import add_sn_tracking 
from pages.edit_sn_tracking import edit_sn_tracking 
from pages.add_sheet_tracking import add_sheet_tracking 
from pages.edit_sheet_tracking import edit_sheet_tracking 


class WebServer: 
    def __init__(self): 
     CherryPyWSGIServer.ssl_certificate = r"/Volumes/wlutils/Users/TesterUs/snserver/server.crt" 
     CherryPyWSGIServer.ssl_private_key = r"/Volumes/wlutils/Users/TesterUs/snserver/server.key" 

     self.urls = (
      '/', 'index', 
      '/search', 'search', 
      '/update_location', 'update_location', 
      '/add_sn_tracking', 'add_sn_tracking', 
      '/edit_sn_tracking', 'edit_sn_tracking', 
      '/add_sheet_tracking', 'add_sheet_tracking', 
      '/edit_sheet_tracking', 'edit_sheet_tracking', 
     ) 
     # web.config.debug = False 
     self.app = web.application(self.urls, globals()) 
     self.app.run() 

if __name__ == "__main__": 
    w = WebServer() 
+0

그냥 - 당신은 nginx 또는 apache를 사용하여 web.py를 앞두고 있지 않습니까? – pbuck

+0

그게 맞아, 오직 web.py – Jonathan

답변

0

은 SSL에 대한 web.py을 설정하려면, 단지 내부 CherryPyWSGIServer 설정 app = web.application(urls, globals())에 전화하기 전에 그것이 당신을 위해 작동하지 않는다면, 시도하고있는 v.0.38 이전의 해결책이 아닌, 현재 web.py에서 작동하지 않는 것으로 알려져있는 것을 탐색 해 봅시다.

추가 정보 : 이전 버전의 web.py이 사용 된 것으로 보입니다. 0.38 이상으로 업데이트되면 예제가 효과적입니다.

+0

그게 내가 처음 시도한거야, 그냥 일반 HTTP 세션을 만듭니다 어쨌든 – Jonathan

+0

샘플 코드를 보여주십시오. 문서화 된 솔루션이 작동하므로 다른 점을 이해하기 위해 더 많은 정보가 필요합니다. – pbuck

+0

실행하려고하는 코드를 추가했습니다. – Jonathan