Exemple #1
0
    def test_deploy_cert(self):
        server_conf = self.config.parser.abs_path('server.conf')
        nginx_conf = self.config.parser.abs_path('nginx.conf')
        example_conf = self.config.parser.abs_path('sites-enabled/example.com')
        # Choose a version of Nginx less than 1.3.7 so stapling code doesn't get
        # invoked.
        self.config.version = (1, 3, 1)

        # Get the default SSL vhost
        self.config.deploy_cert(
            "www.example.com",
            "example/cert.pem",
            "example/key.pem",
            "example/chain.pem",
            "example/fullchain.pem")
        self.config.deploy_cert(
            "another.alias",
            "/etc/nginx/cert.pem",
            "/etc/nginx/key.pem",
            "/etc/nginx/chain.pem",
            "/etc/nginx/fullchain.pem")
        self.config.save()

        self.config.parser.load()

        parsed_example_conf = util.filter_comments(self.config.parser.parsed[example_conf])
        parsed_server_conf = util.filter_comments(self.config.parser.parsed[server_conf])
        parsed_nginx_conf = util.filter_comments(self.config.parser.parsed[nginx_conf])

        self.assertEqual([[['server'],
                           [
                            ['listen', '69.50.225.155:9000'],
                            ['listen', '127.0.0.1'],
                            ['server_name', '.example.com'],
                            ['server_name', 'example.*'],

                            ['listen', '5001 ssl'],
                            ['ssl_certificate', 'example/fullchain.pem'],
                            ['ssl_certificate_key', 'example/key.pem'],
                            ['include', self.config.parser.loc["ssl_options"]]
                            ]]],
                         parsed_example_conf)
        self.assertEqual([['server_name', 'somename  alias  another.alias']],
                         parsed_server_conf)
        self.assertTrue(util.contains_at_depth(
            parsed_nginx_conf,
            [['server'],
             [
              ['listen', '8000'],
              ['listen', 'somename:8080'],
              ['include', 'server.conf'],
              [['location', '/'],
               [['root', 'html'],
                ['index', 'index.html index.htm']]],
              ['listen', '5001 ssl'],
              ['ssl_certificate', '/etc/nginx/fullchain.pem'],
              ['ssl_certificate_key', '/etc/nginx/key.pem'],
              ['include', self.config.parser.loc["ssl_options"]]]],
            2))
    def test_deploy_cert(self):
        server_conf = self.config.parser.abs_path('server.conf')
        nginx_conf = self.config.parser.abs_path('nginx.conf')
        example_conf = self.config.parser.abs_path('sites-enabled/example.com')
        # Choose a version of Nginx less than 1.3.7 so stapling code doesn't get
        # invoked.
        self.config.version = (1, 3, 1)

        # Get the default SSL vhost
        self.config.deploy_cert(
            "www.example.com",
            "example/cert.pem",
            "example/key.pem",
            "example/chain.pem",
            "example/fullchain.pem")
        self.config.deploy_cert(
            "another.alias",
            "/etc/nginx/cert.pem",
            "/etc/nginx/key.pem",
            "/etc/nginx/chain.pem",
            "/etc/nginx/fullchain.pem")
        self.config.save()

        self.config.parser.load()

        parsed_example_conf = util.filter_comments(self.config.parser.parsed[example_conf])
        parsed_server_conf = util.filter_comments(self.config.parser.parsed[server_conf])
        parsed_nginx_conf = util.filter_comments(self.config.parser.parsed[nginx_conf])

        self.assertEqual([[['server'],
                           [
                            ['listen', '69.50.225.155:9000'],
                            ['listen', '127.0.0.1'],
                            ['server_name', '.example.com'],
                            ['server_name', 'example.*'],

                            ['listen', '5001 ssl'],
                            ['ssl_certificate', 'example/fullchain.pem'],
                            ['ssl_certificate_key', 'example/key.pem'],
                            ['include', self.config.parser.loc["ssl_options"]]
                            ]]],
                         parsed_example_conf)
        self.assertEqual([['server_name', 'somename  alias  another.alias']],
                         parsed_server_conf)
        self.assertTrue(util.contains_at_depth(
            parsed_nginx_conf,
            [['server'],
             [
              ['listen', '8000'],
              ['listen', 'somename:8080'],
              ['include', 'server.conf'],
              [['location', '/'],
               [['root', 'html'],
                ['index', 'index.html index.htm']]],
              ['listen', '5001 ssl'],
              ['ssl_certificate', '/etc/nginx/fullchain.pem'],
              ['ssl_certificate_key', '/etc/nginx/key.pem'],
              ['include', self.config.parser.loc["ssl_options"]]]],
            2))
    def test_deploy_cert(self):
        server_conf = self.config.parser.abs_path('server.conf')
        nginx_conf = self.config.parser.abs_path('nginx.conf')
        example_conf = self.config.parser.abs_path('sites-enabled/example.com')

        # Get the default SSL vhost
        self.config.deploy_cert(
            "www.example.com",
            "example/cert.pem", "example/key.pem")
        self.config.deploy_cert(
            "another.alias",
            "/etc/nginx/cert.pem", "/etc/nginx/key.pem")
        self.config.save()

        self.config.parser.load()

        parsed_example_conf = util.filter_comments(self.config.parser.parsed[example_conf])
        parsed_server_conf = util.filter_comments(self.config.parser.parsed[server_conf])
        parsed_nginx_conf = util.filter_comments(self.config.parser.parsed[nginx_conf])

        access_log = os.path.join(self.work_dir, "access.log")
        error_log = os.path.join(self.work_dir, "error.log")
        self.assertEqual([[['server'],
                           [['listen', '69.50.225.155:9000'],
                            ['listen', '127.0.0.1'],
                            ['server_name', '.example.com'],
                            ['server_name', 'example.*'],
                            ['listen', '5001 ssl'],
                            ['access_log', access_log],
                            ['error_log', error_log],
                            ['ssl_certificate', 'example/cert.pem'],
                            ['ssl_certificate_key', 'example/key.pem'],
                            ['include',
                             self.config.parser.loc["ssl_options"]]]]],
                         parsed_example_conf)
        self.assertEqual([['server_name', 'somename  alias  another.alias']],
                         parsed_server_conf)
        self.assertEqual([['server'],
                          [['listen', '8000'],
                           ['listen', 'somename:8080'],
                           ['include', 'server.conf'],
                           [['location', '/'],
                            [['root', 'html'],
                             ['index', 'index.html index.htm']]],
                           ['listen', '5001 ssl'],
                           ['access_log', access_log],
                           ['error_log', error_log],
                           ['ssl_certificate', '/etc/nginx/cert.pem'],
                           ['ssl_certificate_key', '/etc/nginx/key.pem'],
                           ['include',
                            self.config.parser.loc["ssl_options"]]]],
                         parsed_nginx_conf[-1][-1][-1])
    def test_deploy_cert(self):
        server_conf = self.config.parser.abs_path('server.conf')
        nginx_conf = self.config.parser.abs_path('nginx.conf')
        example_conf = self.config.parser.abs_path('sites-enabled/example.com')

        # Get the default SSL vhost
        self.config.deploy_cert("www.example.com", "example/cert.pem",
                                "example/key.pem")
        self.config.deploy_cert("another.alias", "/etc/nginx/cert.pem",
                                "/etc/nginx/key.pem")
        self.config.save()

        self.config.parser.load()

        parsed_example_conf = util.filter_comments(
            self.config.parser.parsed[example_conf])
        parsed_server_conf = util.filter_comments(
            self.config.parser.parsed[server_conf])
        parsed_nginx_conf = util.filter_comments(
            self.config.parser.parsed[nginx_conf])

        access_log = os.path.join(self.work_dir, "access.log")
        error_log = os.path.join(self.work_dir, "error.log")
        self.assertEqual(
            [[['server'],
              [['listen', '69.50.225.155:9000'], ['listen', '127.0.0.1'],
               ['server_name', '.example.com'], ['server_name', 'example.*'],
               ['listen', '5001 ssl'], ['access_log', access_log],
               ['error_log', error_log], [
                   'ssl_certificate', 'example/cert.pem'
               ], ['ssl_certificate_key', 'example/key.pem'],
               ['include', self.config.parser.loc["ssl_options"]]]]],
            parsed_example_conf)
        self.assertEqual([['server_name', 'somename  alias  another.alias']],
                         parsed_server_conf)
        self.assertEqual(
            [['server'],
             [['listen', '8000'], ['listen', 'somename:8080'],
              ['include', 'server.conf'],
              [['location', '/'],
               [['root', 'html'], ['index', 'index.html index.htm']]],
              ['listen', '5001 ssl'], ['access_log', access_log],
              ['error_log', error_log],
              ['ssl_certificate', '/etc/nginx/cert.pem'],
              ['ssl_certificate_key', '/etc/nginx/key.pem'],
              ['include', self.config.parser.loc["ssl_options"]]]],
            parsed_nginx_conf[-1][-1][-1])
    def test_dump_as_file(self):
        with open(util.get_data_filename('nginx.conf')) as handle:
            parsed = util.filter_comments(load(handle))
        parsed[-1][-1].append([['server'],
                               [['listen', '443 ssl'],
                                ['server_name', 'localhost'],
                                ['ssl_certificate', 'cert.pem'],
                                ['ssl_certificate_key', 'cert.key'],
                                ['ssl_session_cache', 'shared:SSL:1m'],
                                ['ssl_session_timeout', '5m'],
                                ['ssl_ciphers', 'HIGH:!aNULL:!MD5'],
                                [['location', '/'],
                                 [['root', 'html'],
                                  ['index', 'index.html index.htm']]]]])

        with open(util.get_data_filename('nginx.new.conf'), 'w') as handle:
            dump(parsed, handle)
        with open(util.get_data_filename('nginx.new.conf')) as handle:
            parsed_new = util.filter_comments(load(handle))
        self.assertEquals(parsed, parsed_new)
Exemple #6
0
    def test_dump_as_file(self):
        with open(util.get_data_filename('nginx.conf')) as handle:
            parsed = util.filter_comments(load(handle))
        parsed[-1][-1].append([['server'],
                               [['listen', '443 ssl'],
                                ['server_name', 'localhost'],
                                ['ssl_certificate', 'cert.pem'],
                                ['ssl_certificate_key', 'cert.key'],
                                ['ssl_session_cache', 'shared:SSL:1m'],
                                ['ssl_session_timeout', '5m'],
                                ['ssl_ciphers', 'HIGH:!aNULL:!MD5'],
                                [['location', '/'],
                                 [['root', 'html'],
                                  ['index', 'index.html index.htm']]]]])

        with open(util.get_data_filename('nginx.new.conf'), 'w') as handle:
            dump(parsed, handle)
        with open(util.get_data_filename('nginx.new.conf')) as handle:
            parsed_new = util.filter_comments(load(handle))
        self.assertEquals(parsed, parsed_new)
 def test_parse_from_file2(self):
     with open(util.get_data_filename('edge_cases.conf')) as handle:
         parsed = util.filter_comments(load(handle))
     self.assertEqual(
         parsed,
         [[['server'], [['server_name', 'simple']]],
          [['server'],
           [['server_name', 'with.if'],
            [['location', '~', '^/services/.+$'],
             [[['if', '($request_filename ~* \\.(ttf|woff)$)'],
               [['add_header', 'Access-Control-Allow-Origin "*"']]]]]]],
          [['server'],
           [['server_name', 'with.complicated.headers'],
            [['location', '~*', '\\.(?:gif|jpe?g|png)$'],
             [['add_header', 'Pragma public'],
              ['add_header',
               'Cache-Control  \'public, must-revalidate, proxy-revalidate\''
               ' "test,;{}" foo'],
              ['blah', '"hello;world"'],
              ['try_files', '$uri @rewrites']]]]]])
Exemple #8
0
 def test_parse_from_file2(self):
     with open(util.get_data_filename('edge_cases.conf')) as handle:
         parsed = util.filter_comments(load(handle))
     self.assertEqual(parsed, [
         [['server'], [['server_name', 'simple']]],
         [['server'],
          [['server_name', 'with.if'],
           [['location', '~', '^/services/.+$'],
            [[['if', '($request_filename ~* \\.(ttf|woff)$)'],
              [['add_header', 'Access-Control-Allow-Origin "*"']]]]]]],
         [['server'],
          [['server_name', 'with.complicated.headers'],
           [['location', '~*', '\\.(?:gif|jpe?g|png)$'],
            [['add_header', 'Pragma public'],
             [
                 'add_header',
                 'Cache-Control  \'public, must-revalidate, proxy-revalidate\''
                 ' "test,;{}" foo'
             ], ['blah', '"hello;world"'], ['try_files', '$uri @rewrites']]]
           ]]
     ])
Exemple #9
0
 def test_parse_from_file(self):
     with open(util.get_data_filename('foo.conf')) as handle:
         parsed = util.filter_comments(load(handle))
     self.assertEqual(
         parsed,
         [['user', 'www-data'],
          [['http'],
           [[['server'],
             [['listen', '*:80 default_server ssl'],
              ['server_name', '*.www.foo.com *.www.example.com'],
              ['root', '/home/ubuntu/sites/foo/'],
              [['location', '/status'],
               [
                   [['types'], [['image/jpeg', 'jpg']]],
               ]],
              [['location', '~', r'case_sensitive\.php$'],
               [
                   ['index', 'index.php'],
                   ['root', '/var/root'],
               ]], [['location', '~*', r'case_insensitive\.php$'], []],
              [['location', '=', r'exact_match\.php$'], []],
              [['location', '^~', r'ignore_regex\.php$'], []]]]]]])
 def test_parse_from_file(self):
     with open(util.get_data_filename('foo.conf')) as handle:
         parsed = util.filter_comments(load(handle))
     self.assertEqual(
         parsed,
         [['user', 'www-data'],
          [['http'],
           [[['server'], [
               ['listen', '*:80 default_server ssl'],
               ['server_name', '*.www.foo.com *.www.example.com'],
               ['root', '/home/ubuntu/sites/foo/'],
               [['location', '/status'], [
                   [['types'], [['image/jpeg', 'jpg']]],
               ]],
               [['location', '~', r'case_sensitive\.php$'], [
                   ['index', 'index.php'],
                   ['root', '/var/root'],
               ]],
               [['location', '~*', r'case_insensitive\.php$'], []],
               [['location', '=', r'exact_match\.php$'], []],
               [['location', '^~', r'ignore_regex\.php$'], []]
           ]]]]]
     )
    def test_deploy_cert(self):
        server_conf = self.config.parser.abs_path("server.conf")
        nginx_conf = self.config.parser.abs_path("nginx.conf")
        example_conf = self.config.parser.abs_path("sites-enabled/example.com")
        # Choose a version of Nginx less than 1.3.7 so stapling code doesn't get
        # invoked.
        self.config.version = (1, 3, 1)

        # Get the default SSL vhost
        self.config.deploy_cert(
            "www.example.com", "example/cert.pem", "example/key.pem", "example/chain.pem", "example/fullchain.pem"
        )
        self.config.deploy_cert(
            "another.alias",
            "/etc/nginx/cert.pem",
            "/etc/nginx/key.pem",
            "/etc/nginx/chain.pem",
            "/etc/nginx/fullchain.pem",
        )
        self.config.save()

        self.config.parser.load()

        parsed_example_conf = util.filter_comments(self.config.parser.parsed[example_conf])
        parsed_server_conf = util.filter_comments(self.config.parser.parsed[server_conf])
        parsed_nginx_conf = util.filter_comments(self.config.parser.parsed[nginx_conf])

        access_log = os.path.join(self.work_dir, "access.log")
        error_log = os.path.join(self.work_dir, "error.log")
        self.assertEqual(
            [
                [
                    ["server"],
                    [
                        ["include", self.config.parser.loc["ssl_options"]],
                        ["ssl_certificate_key", "example/key.pem"],
                        ["ssl_certificate", "example/fullchain.pem"],
                        ["error_log", error_log],
                        ["access_log", access_log],
                        ["listen", "5001 ssl"],
                        ["listen", "69.50.225.155:9000"],
                        ["listen", "127.0.0.1"],
                        ["server_name", ".example.com"],
                        ["server_name", "example.*"],
                    ],
                ]
            ],
            parsed_example_conf,
        )
        self.assertEqual([["server_name", "somename  alias  another.alias"]], parsed_server_conf)
        self.assertTrue(
            util.contains_at_depth(
                parsed_nginx_conf,
                [
                    ["server"],
                    [
                        ["include", self.config.parser.loc["ssl_options"]],
                        ["ssl_certificate_key", "/etc/nginx/key.pem"],
                        ["ssl_certificate", "/etc/nginx/fullchain.pem"],
                        ["error_log", error_log],
                        ["access_log", access_log],
                        ["listen", "5001 ssl"],
                        ["listen", "8000"],
                        ["listen", "somename:8080"],
                        ["include", "server.conf"],
                        [["location", "/"], [["root", "html"], ["index", "index.html index.htm"]]],
                    ],
                ],
                2,
            )
        )