Add SSL support in API (experimental)

This commit is contained in:
Kload 2013-10-07 18:35:54 +00:00
parent 88cc0e2bf3
commit 35525a6897

View file

@ -11,7 +11,7 @@ sys.path.append('/usr/share/pyshared')
from twisted.python.log import ILogObserver, FileLogObserver, startLogging, msg from twisted.python.log import ILogObserver, FileLogObserver, startLogging, msg
from twisted.python.logfile import DailyLogFile from twisted.python.logfile import DailyLogFile
from twisted.web.server import Site, http from twisted.web.server import Site, http
from twisted.internet import reactor from twisted.internet import reactor, ssl
from twisted.application import internet,service from twisted.application import internet,service
from txrestapi.resource import APIResource from txrestapi.resource import APIResource
from yunohost import YunoHostError, YunoHostLDAP, str_to_func, colorize, pretty_print_dict, display_error, validate, win, parse_dict from yunohost import YunoHostError, YunoHostLDAP, str_to_func, colorize, pretty_print_dict, display_error, validate, win, parse_dict
@ -24,6 +24,8 @@ gettext.install('YunoHost')
dev = False dev = False
installed = True installed = True
ssl_key = '/usr/share/yunohost/yunohost-config/ssl/yunoCA/certs/yunohost_key.pem'
ssl_crt = '/usr/share/yunohost/yunohost-config/ssl/yunoCA/newcerts/02.pem'
action_dict = {} action_dict = {}
api = APIResource() api = APIResource()
@ -238,11 +240,14 @@ if __name__ == '__main__':
else: else:
startLogging(open('/var/log/yunohost.log', 'a+')) # Log actions to file startLogging(open('/var/log/yunohost.log', 'a+')) # Log actions to file
main() main()
reactor.listenTCP(6767, Site(api, timeout=None)) if '--dev' in sys.argv:
reactor.listenTCP(6767, Site(api, timeout=None))
else:
reactor.listenSSL(6767, Site(api, timeout=None), ssl.DefaultOpenSSLContextFactory(ssl_key, ssl_crt))
reactor.run() reactor.run()
else: else:
application = service.Application("YunoHost API") application = service.Application("YunoHost API")
logfile = DailyLogFile("yunohost.log", "/var/log") logfile = DailyLogFile("yunohost.log", "/var/log")
application.setComponent(ILogObserver, FileLogObserver(logfile).emit) application.setComponent(ILogObserver, FileLogObserver(logfile).emit)
main() main()
internet.TCPServer(6767, Site(api, timeout=None)).setServiceParent(application) internet.SSLServer(6767, Site(api, timeout=None), ssl.DefaultOpenSSLContextFactory(ssl_key, ssl_crt)).setServiceParent(application)