Esempio n. 1
0
 def test_find_best_vhost_variety(self):
     # pylint: disable=protected-access
     ssl_vh = obj.VirtualHost(
         "fp", "ap", set([obj.Addr(("*", "443")),
                          obj.Addr(("zombo.com",))]),
         True, False)
     self.config.vhosts.append(ssl_vh)
     self.assertEqual(self.config._find_best_vhost("zombo.com"), ssl_vh)
Esempio n. 2
0
    def test_redirect_with_conflict(self):
        self.config.parser.modules.add("rewrite_module")
        ssl_vh = obj.VirtualHost(
            "fp", "ap", set([obj.Addr(("*", "443")),
                             obj.Addr(("zombo.com",))]),
            True, False)
        # No names ^ this guy should conflict.

        # pylint: disable=protected-access
        self.assertRaises(
            errors.PluginError, self.config._enable_redirect, ssl_vh, "")
Esempio n. 3
0
    def _get_addrs(self, achall):
        """Return the Apache addresses needed for TLS-SNI-01."""
        # TODO: Checkout _default_ rules.
        addrs = set()
        default_addr = obj.Addr(
            ("*", str(self.configurator.config.tls_sni_01_port)))

        try:
            vhost = self.configurator.choose_vhost(achall.domain, temp=True)
        except (PluginError, MissingCommandlineFlag):
            # We couldn't find the virtualhost for this domain, possibly
            # because it's a new vhost that's not configured yet (GH #677),
            # or perhaps because there were multiple <VirtualHost> sections
            # in the config file (GH #1042).  See also GH #2600.
            addrs.add(default_addr)
            return addrs

        for addr in vhost.addrs:
            if "_default_" == addr.get_addr():
                addrs.add(default_addr)
            else:
                addrs.add(
                    addr.get_sni_addr(
                        self.configurator.config.tls_sni_01_port))

        return addrs
Esempio n. 4
0
 def test_bad_servername_alias(self):
     ssl_vh1 = obj.VirtualHost("fp1", "ap1", set([obj.Addr(("*", "443"))]),
                               True, False)
     # pylint: disable=protected-access
     self.config._add_servernames(ssl_vh1)
     self.assertTrue(
         self.config._add_servername_alias("oy_vey", ssl_vh1) is None)
Esempio n. 5
0
    def _get_addrs(self, achall):
        """Return the Apache addresses needed for TLS-SNI-01."""
        # TODO: Checkout _default_ rules.
        addrs = set()
        default_addr = obj.Addr(
            ("*", str(self.configurator.config.tls_sni_01_port)))

        try:
            vhost = self.configurator.choose_vhost(achall.domain, temp=True)
        except (PluginError, MissingCommandlineFlag):
            # We couldn't find the virtualhost for this domain, possibly
            # because it's a new vhost that's not configured yet
            # (GH #677). See also GH #2600.
            logger.warning("Falling back to default vhost %s...", default_addr)
            addrs.add(default_addr)
            return addrs

        for addr in vhost.addrs:
            if "_default_" == addr.get_addr():
                addrs.add(default_addr)
            else:
                addrs.add(
                    addr.get_sni_addr(
                        self.configurator.config.tls_sni_01_port))

        return addrs
Esempio n. 6
0
    def test_get_http_vhost_third_filter(self):
        ssl_vh = obj.VirtualHost("fp", "ap", set([obj.Addr(("*", "443"))]),
                                 True, False)
        ssl_vh.name = "satoshi.com"
        self.config.vhosts.append(ssl_vh)

        # pylint: disable=protected-access
        http_vh = self.config._get_http_vhost(ssl_vh)
        self.assertTrue(http_vh.ssl == False)
Esempio n. 7
0
 def test_enhance_unknown_vhost(self, mock_exe):
     self.config.parser.modules.add("rewrite_module")
     mock_exe.return_value = True
     ssl_vh = obj.VirtualHost("fp", "ap", set([obj.Addr(("*", "443"))]),
                              True, False)
     ssl_vh.name = "satoshi.com"
     self.config.vhosts.append(ssl_vh)
     self.assertRaises(errors.PluginError, self.config.enhance,
                       "satoshi.com", "redirect")
Esempio n. 8
0
    def test_get_all_names_addrs(self, mock_gethost, mock_getutility):
        mock_gethost.side_effect = [("google.com", "", ""), socket.error]
        notification = mock.Mock()
        notification.notification = mock.Mock(return_value=True)
        mock_getutility.return_value = notification
        vhost = obj.VirtualHost(
            "fp", "ap",
            set([obj.Addr(("8.8.8.8", "443")),
                 obj.Addr(("zombo.com",)),
                 obj.Addr(("192.168.1.2"))]),
            True, False)

        self.config.vhosts.append(vhost)

        names = self.config.get_all_names()
        self.assertEqual(len(names), 7)
        self.assertTrue("zombo.com" in names)
        self.assertTrue("google.com" in names)
        self.assertTrue("certbot.demo" in names)
Esempio n. 9
0
    def test_add_name_vhost_if_necessary(self):
        # pylint: disable=protected-access
        self.config.save = mock.Mock()
        self.config.version = (2, 2)
        self.config._add_name_vhost_if_necessary(self.vh_truth[0])
        self.assertTrue(self.config.save.called)

        new_addrs = set()
        for addr in self.vh_truth[0].addrs:
            new_addrs.add(obj.Addr(("_default_", addr.get_port(),)))

        self.vh_truth[0].addrs = new_addrs
        self.config._add_name_vhost_if_necessary(self.vh_truth[0])
        self.assertEqual(self.config.save.call_count, 2)
Esempio n. 10
0
    def _get_addrs(self, achall):
        """Return the Apache addresses needed for TLS-SNI-01."""
        vhost = self.configurator.choose_vhost(achall.domain, temp=True)
        # TODO: Checkout _default_ rules.
        addrs = set()
        default_addr = obj.Addr(("*", str(
            self.configurator.config.tls_sni_01_port)))

        for addr in vhost.addrs:
            if "_default_" == addr.get_addr():
                addrs.add(default_addr)
            else:
                addrs.add(
                    addr.get_sni_addr(
                        self.configurator.config.tls_sni_01_port))

        return addrs