mirror of
https://github.com/certbot/certbot.git
synced 2026-08-03 19:52:34 +02:00
Merge pull request #2109 from twstrike/fix-2059
Makes NginxParser aware of `ssl on` directive
This commit is contained in:
@@ -113,7 +113,7 @@ class NginxParser(object):
|
|||||||
for filename in servers:
|
for filename in servers:
|
||||||
for server in servers[filename]:
|
for server in servers[filename]:
|
||||||
# Parse the server block into a VirtualHost object
|
# Parse the server block into a VirtualHost object
|
||||||
parsed_server = _parse_server(server)
|
parsed_server = parse_server(server)
|
||||||
vhost = obj.VirtualHost(filename,
|
vhost = obj.VirtualHost(filename,
|
||||||
parsed_server['addrs'],
|
parsed_server['addrs'],
|
||||||
parsed_server['ssl'],
|
parsed_server['ssl'],
|
||||||
@@ -451,7 +451,7 @@ def _get_servernames(names):
|
|||||||
return names.split(' ')
|
return names.split(' ')
|
||||||
|
|
||||||
|
|
||||||
def _parse_server(server):
|
def parse_server(server):
|
||||||
"""Parses a list of server directives.
|
"""Parses a list of server directives.
|
||||||
|
|
||||||
:param list server: list of directives in a server block
|
:param list server: list of directives in a server block
|
||||||
@@ -471,6 +471,8 @@ def _parse_server(server):
|
|||||||
elif directive[0] == 'server_name':
|
elif directive[0] == 'server_name':
|
||||||
parsed_server['names'].update(
|
parsed_server['names'].update(
|
||||||
_get_servernames(directive[1]))
|
_get_servernames(directive[1]))
|
||||||
|
elif directive[0] == 'ssl' and directive[1] == 'on':
|
||||||
|
parsed_server['ssl'] = True
|
||||||
|
|
||||||
return parsed_server
|
return parsed_server
|
||||||
|
|
||||||
|
|||||||
@@ -228,6 +228,26 @@ class NginxParserTest(util.NginxTest):
|
|||||||
c_k = nparser.get_all_certs_keys()
|
c_k = nparser.get_all_certs_keys()
|
||||||
self.assertEqual(set([('foo.pem', 'bar.key', filep)]), c_k)
|
self.assertEqual(set([('foo.pem', 'bar.key', filep)]), c_k)
|
||||||
|
|
||||||
|
def test_parse_server_ssl(self):
|
||||||
|
server = parser.parse_server([
|
||||||
|
['listen', '443']
|
||||||
|
])
|
||||||
|
self.assertFalse(server['ssl'])
|
||||||
|
|
||||||
|
server = parser.parse_server([
|
||||||
|
['listen', '443 ssl']
|
||||||
|
])
|
||||||
|
self.assertTrue(server['ssl'])
|
||||||
|
|
||||||
|
server = parser.parse_server([
|
||||||
|
['listen', '443'], ['ssl', 'off']
|
||||||
|
])
|
||||||
|
self.assertFalse(server['ssl'])
|
||||||
|
|
||||||
|
server = parser.parse_server([
|
||||||
|
['listen', '443'], ['ssl', 'on']
|
||||||
|
])
|
||||||
|
self.assertTrue(server['ssl'])
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
unittest.main() # pragma: no cover
|
unittest.main() # pragma: no cover
|
||||||
|
|||||||
Reference in New Issue
Block a user