Add option for cert key password

This commit is contained in:
Tommy Brunn 2019-03-02 17:21:28 +01:00
parent c136ea2d34
commit 0163e4060b
3 changed files with 8 additions and 5 deletions

View File

@ -271,7 +271,7 @@ class WebSockifyServerTestCase(unittest.TestCase):
def __init__(self, purpose):
self.verify_mode = None
self.options = 0
def load_cert_chain(self, certfile, keyfile):
def load_cert_chain(self, certfile, keyfile, password):
pass
def set_default_verify_paths(self):
pass
@ -310,7 +310,7 @@ class WebSockifyServerTestCase(unittest.TestCase):
def __init__(self, purpose):
self.verify_mode = None
self.options = 0
def load_cert_chain(self, certfile, keyfile):
def load_cert_chain(self, certfile, keyfile, password):
pass
def set_default_verify_paths(self):
pass
@ -351,7 +351,7 @@ class WebSockifyServerTestCase(unittest.TestCase):
def __init__(self, purpose):
self.verify_mode = None
self._options = 0
def load_cert_chain(self, certfile, keyfile):
def load_cert_chain(self, certfile, keyfile, password):
pass
def set_default_verify_paths(self):
pass

View File

@ -478,6 +478,8 @@ def websockify_init():
help="SSL certificate file")
parser.add_option("--key", default=None,
help="SSL key file (if separate from cert)")
parser.add_option("--password", default=None,
help="SSL key password")
parser.add_option("--ssl-only", action="store_true",
help="disallow non-encrypted client connections")
parser.add_option("--ssl-target", action="store_true",

View File

@ -340,7 +340,7 @@ class WebSockifyServer(object):
def __init__(self, RequestHandlerClass, listen_fd=None,
listen_host='', listen_port=None, source_is_ipv6=False,
verbose=False, cert='', key='', ssl_only=None,
verbose=False, cert='', key='', password=None, ssl_only=None,
verify_client=False, cafile=None,
daemon=False, record='', web='', web_auth=False,
file_only=False,
@ -380,6 +380,7 @@ class WebSockifyServer(object):
# keyfile path must be None if not specified
self.key = None
self.password = password
# Make paths settings absolute
self.cert = os.path.abspath(cert)
@ -577,7 +578,7 @@ class WebSockifyServer(object):
if self.ssl_ciphers is not None:
context.set_ciphers(self.ssl_ciphers)
context.options = self.ssl_options
context.load_cert_chain(certfile=self.cert, keyfile=self.key)
context.load_cert_chain(certfile=self.cert, keyfile=self.key, password=self.password)
if self.verify_client:
context.verify_mode = ssl.CERT_REQUIRED
if self.cafile: