Änderung gegen über der Original-Quelle (Deprecated since version 3.6: OpenSSL has deprecated all version specific protocols.)
PROTOCOL_TLSv1_2 wird zu PROTOCOL_TLS_SERVER
from bottle import ServerAdapter,run,get
class SecureAdapter(ServerAdapter):
def run(self, handler):
from wsgiref.simple_server import make_server, WSGIRequestHandler, WSGIServer
from socketserver import ThreadingMixIn
import ssl
if self.quiet:
class QuietHandler(WSGIRequestHandler):
def log_request(*args, **kw):
pass
self.options['handler_class'] = QuietHandler
#Setup SSL context for 'A+' rating from Qualys SSL Labs.
context = ssl.SSLContext(protocol=ssl.PROTOCOL_TLS_SERVER)
context.load_cert_chain(certfile='server.pem')
context.set_ciphers('EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH')
class ThreadAdapter(ThreadingMixIn, WSGIServer): pass
ssl_server = make_server(self.host, self.port, handler, server_class=ThreadAdapter, **self.options)
ssl_server.socket = context.wrap_socket(ssl_server.socket, server_side=True)
ssl_server.serve_forever()
@get("/x")
def get_x():
return "Hi there"
run(server=SecureAdapter, host="0.0.0.0", port=8090)
Tags: