'Perform a TLS-SNI-01 challenge.'

def perform(self):

    if (not self.achalls):
        return []
    self.configurator.save('Changes    before    challenge    setup', True)
    self.configurator.prepare_server_https(str(self.configurator.config.tls_sni_01_port), True)
    responses = []
    for achall in self.achalls:
        responses.append(self._setup_challenge_cert(achall))
    addrs = self._mod_config()
    self.configurator.save("Don't    lose    mod_config    changes", True)
    self.configurator.make_addrs_sni_ready(addrs)
    self.configurator.save('SNI    Challenge', True)
    return responses
