Example #1
0
    def test_700_011(self):
        domain = "test700-011-" + TestAuto.dns_uniq
        dns_list = [ domain, "www." + domain ]

        # generate 1 MD and 1 vhost, map port 80 onto itself where the server does not listen
        conf = HttpdConf( TestAuto.TMP_CONF )
        conf.add_admin( "admin@" + domain )
        conf.add_drive_mode( "auto" )
        conf.add_ca_challenges( [ "tls-sni-01" ] )
        conf._add_line("MDPortMap 443:99")        
        conf.add_md( dns_list )
        conf.add_vhost( TestEnv.HTTPS_PORT, domain, aliasList=[ dns_list[1] ], withSSL=True )
        conf.install()
        assert TestEnv.apache_restart() == 0
        self._check_md_names(domain, dns_list)
        assert TestEnv.await_error( [ domain ] )

        # now the same with a 80 mapped to a supported port 
        conf = HttpdConf( TestAuto.TMP_CONF )
        conf.add_admin( "admin@" + domain )
        conf.add_drive_mode( "auto" )
        conf.add_ca_challenges( [ "tls-sni-01" ] )
        conf._add_line("MDPortMap 443:%s" % TestEnv.HTTPS_PORT)
        conf.add_md( dns_list )
        conf.add_vhost( TestEnv.HTTPS_PORT, domain, aliasList=[ dns_list[1] ], withSSL=True )
        conf.install()
        assert TestEnv.apache_restart() == 0
        self._check_md_names(domain, dns_list)
        assert TestEnv.await_completion( [ domain ] )
Example #2
0
 def test_702_006(self):
     domain = self.test_domain
     nameA = "test-a." + domain
     domains = [domain, nameA]
     #
     # generate 1 MD, 1 vhost
     conf = HttpdConf()
     conf.add_admin("admin@" + domain)
     conf.add_ca_challenges(["invalid-01", "invalid-02"])
     conf.add_md(domains)
     conf.add_vhost(nameA, docRoot="htdocs/a")
     conf.install()
     #
     # create docRoot folder
     self._write_res_file(os.path.join(TestEnv.APACHE_HTDOCS_DIR, "a"),
                          "name.txt", nameA)
     #
     # restart, check that md is in store
     assert TestEnv.apache_restart() == 0
     TestEnv.check_md(domains)
     # await drive completion
     md = TestEnv.await_error(domain)
     assert md
     assert md['renewal']['errors'] > 0
     assert md['renewal']['last']['problem'] == 'challenge-mismatch'
     assert 'account' not in md['ca']
     #
     # check: that request to domains give 503 Service Unavailable
     cert = TestEnv.get_cert(nameA)
     assert nameA in cert.get_san_list()
     assert TestEnv.getStatus(nameA, "/name.txt") == 503
Example #3
0
    def test_702_041(self):
        domain = "test702-041-" + TestAuto.dns_uniq
        dns_list = [domain, "www." + domain]

        # generate 1 MD and 1 vhost
        conf = HttpdConf(TestAuto.TMP_CONF)
        conf.add_admin("admin@" + domain)
        conf.add_line("LogLevel core:debug")
        conf.add_line("LogLevel ssl:debug")
        conf.add_drive_mode("auto")
        conf.add_ca_challenges(["tls-alpn-01"])
        conf.add_md(dns_list)
        conf.add_vhost(TestEnv.HTTPS_PORT,
                       domain,
                       aliasList=[dns_list[1]],
                       withSSL=True)
        conf.install()

        # restart (-> drive), check that MD job shows errors
        # and that missing proto is detected
        assert TestEnv.apache_restart() == 0
        self._check_md_names(domain, dns_list)
        assert TestEnv.await_error([domain]) == True
        md = self._get_md(domain)
        assert False == md["proto"]["acme-tls/1"]
Example #4
0
 def test_702_051(self):
     domain = self.test_domain
     conf = HttpdConf()
     conf.add_line("""
         MDBaseServer on
         MDPortMap http:-
         ServerAdmin admin@%s
         ServerName %s
         """ % (domain, domain))
     conf.add_md([domain])
     conf.install()
     assert TestEnv.apache_restart() == 0
     assert TestEnv.await_error(domain)
Example #5
0
 def test_740_000(self):
     domain = self.test_domain
     domains = [domain, "invalid!." + domain]
     conf = HttpdConf()
     conf.add_admin("*****@*****.**")
     conf.add_md(domains)
     conf.add_vhost(domains)
     conf.install()
     assert TestEnv.apache_restart() == 0
     md = TestEnv.await_error(domain)
     assert md
     assert md['renewal']['errors'] > 0
     assert md['renewal']['last'][
         'problem'] == 'urn:ietf:params:acme:error:rejectedIdentifier'
     assert md['renewal']['last']['detail'] == (
         "Error creating new order :: Cannot issue for \"%s\": Invalid character in DNS name"
         % (domains[1]))
Example #6
0
    def test_700_008(self):
        domain = self.test_domain
        dns_list = [ domain ]
        conf = HttpdConf()
        conf.add_admin( "admin@" + domain )
        conf.add_drive_mode( "always" )
        conf.add_http_proxy( "http://localhost:1" )
        conf.add_md( dns_list )
        conf.install()

        # - restart (-> drive)
        assert TestEnv.apache_restart() == 0
        # await drive completion
        md = TestEnv.await_error(domain)
        assert md
        assert md['renewal']['errors'] > 0
        assert md['renewal']['last']['status-description'] == 'Connection refused'
        assert 'account' not in md['ca']
Example #7
0
 def test_740_001(self):
     domain = self.test_domain
     domains = [domain, "invalid1!." + domain, "invalid2!." + domain]
     conf = HttpdConf()
     conf.add_admin("*****@*****.**")
     conf.add_md(domains)
     conf.add_vhost(domains)
     conf.install()
     assert TestEnv.apache_restart() == 0
     md = TestEnv.await_error(domain)
     assert md
     assert md['renewal']['errors'] > 0
     assert md['renewal']['last'][
         'problem'] == 'urn:ietf:params:acme:error:rejectedIdentifier'
     # just check the beginning, reported name seems to vary sometimes
     assert md['renewal']['last']['detail'].startswith(
         "Error creating new order :: Cannot issue for")
     assert md['renewal']['last']['subproblems']
     assert len(md['renewal']['last']['subproblems']) == 2
Example #8
0
    def test_720_001(self):
        domain = "test720-001-" + TestAuto.dns_uniq

        # generate config with DNS wildcard
        dnsList = [domain, "*." + domain]
        conf = HttpdConf(TestAuto.TMP_CONF)
        conf.add_admin("*****@*****.**")
        conf.add_md(dnsList)
        conf.add_vhost(TestEnv.HTTPS_PORT,
                       domain,
                       aliasList=[dnsList[1]],
                       withSSL=True)
        conf.install()

        # restart, check that md is in store
        assert TestEnv.apache_restart() == 0
        self._check_md_names(domain, dnsList)
        # await drive completion
        assert TestEnv.await_error([domain])
Example #9
0
    def test_720_001(self):
        domain = self.test_domain

        # generate config with DNS wildcard
        domains = [domain, "*." + domain]
        conf = HttpdConf()
        conf.add_admin("*****@*****.**")
        conf.add_md(domains)
        conf.add_vhost(domains)
        conf.install()

        # restart, check that md is in store
        assert TestEnv.apache_restart() == 0
        TestEnv.check_md(domains)
        # await drive completion
        md = TestEnv.await_error(domain)
        assert md
        assert md['renewal']['errors'] > 0
        assert md['renewal']['last']['problem'] == 'challenge-mismatch'
Example #10
0
    def test_720_003(self):
        dns01cmd = ("%s/dns01.py fail" % TestEnv.TESTROOT)

        domain = "test720-003-" + TestAuto.dns_uniq
        dnsList = [domain, "*." + domain]

        conf = HttpdConf(TestAuto.TMP_CONF)
        conf.add_admin("*****@*****.**")
        conf.add_ca_challenges(["dns-01"])
        conf.add_dns01_cmd(dns01cmd)
        conf.add_md(dnsList)
        conf.add_vhost(TestEnv.HTTPS_PORT,
                       domain,
                       aliasList=[dnsList[1]],
                       withSSL=True)
        conf.install()

        # restart, check that md is in store
        assert TestEnv.apache_restart() == 0
        self._check_md_names(domain, dnsList)
        # await drive completion
        assert TestEnv.await_error([domain])
Example #11
0
    def test_720_002(self):
        dns01cmd = ("%s/dns01-not-found.py" % TestEnv.TESTROOT)

        domain = self.test_domain
        domains = [domain, "*." + domain]

        conf = HttpdConf()
        conf.add_admin("*****@*****.**")
        conf.add_ca_challenges(["dns-01"])
        conf.add_dns01_cmd(dns01cmd)
        conf.add_md(domains)
        conf.add_vhost(domains)
        conf.install()

        # restart, check that md is in store
        assert TestEnv.apache_restart() == 0
        TestEnv.check_md(domains)
        # await drive completion
        md = TestEnv.await_error(domain)
        assert md
        assert md['renewal']['errors'] > 0
        assert md['renewal']['last']['problem'] == 'challenge-setup-failure'
Example #12
0
    def test_720_000(self):
        domain = self.test_domain

        # switch to ACMEv1
        TestEnv.initv1()

        # generate config with DNS wildcard
        domains = [domain, "*." + domain]
        conf = HttpdConf()
        conf.add_admin("*****@*****.**")
        conf.add_md(domains)
        conf.add_vhost(domains)
        conf.install()

        # restart, check that md is in store
        assert TestEnv.apache_restart() == 0
        TestEnv.check_md(domains)
        # await drive error as ACMEv1 does not accept DNS wildcards
        md = TestEnv.await_error(domain)
        assert md
        assert md['renewal']['errors'] > 0
        assert md['renewal']['last']['problem'] == 'urn:acme:error:malformed'