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)
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, "")
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
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)
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
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)
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")
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)
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)
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