示例#1
0
 def _perform_achall_manually(self,
                              achall: achallenges.AnnotatedChallenge,
                              last_dns_achall: bool = False) -> None:
     validation = achall.validation(achall.account_key)
     if isinstance(achall.chall, challenges.HTTP01):
         msg = self._HTTP_INSTRUCTIONS.format(
             achall=achall,
             encoded_token=achall.chall.encode('token'),
             port=self.config.http01_port,
             uri=achall.chall.uri(achall.domain),
             validation=validation)
     else:
         assert isinstance(achall.chall, challenges.DNS01)
         msg = self._DNS_INSTRUCTIONS.format(
             domain=achall.validation_domain_name(achall.domain),
             validation=validation)
     if isinstance(achall.chall, challenges.DNS01):
         if self.subsequent_dns_challenge:
             # 2nd or later dns-01 challenge
             msg += self._SUBSEQUENT_DNS_CHALLENGE_INSTRUCTIONS
         elif self.subsequent_any_challenge:
             # 1st dns-01 challenge, but 2nd or later *any* challenge, so
             # instruct user not to remove any previous http-01 challenge
             msg += self._SUBSEQUENT_CHALLENGE_INSTRUCTIONS
         self.subsequent_dns_challenge = True
         if last_dns_achall:
             # last dns-01 challenge
             msg += self._DNS_VERIFY_INSTRUCTIONS.format(
                 domain=achall.validation_domain_name(achall.domain))
     elif self.subsequent_any_challenge:
         # 2nd or later challenge of another type
         msg += self._SUBSEQUENT_CHALLENGE_INSTRUCTIONS
     display_util.notification(msg, wrap=False, force_interactive=True)
     self.subsequent_any_challenge = True
示例#2
0
 def _perform_achall_with_script(self, achall: achallenges.AnnotatedChallenge,
                                 achalls: List[achallenges.AnnotatedChallenge]) -> None:
     env = dict(CERTBOT_DOMAIN=achall.domain,
                CERTBOT_VALIDATION=achall.validation(achall.account_key),
                CERTBOT_ALL_DOMAINS=','.join(one_achall.domain for one_achall in achalls),
                CERTBOT_REMAINING_CHALLENGES=str(len(achalls) - achalls.index(achall) - 1))
     if isinstance(achall.chall, challenges.HTTP01):
         env['CERTBOT_TOKEN'] = achall.chall.encode('token')
     else:
         os.environ.pop('CERTBOT_TOKEN', None)
     os.environ.update(env)
     _, out = self._execute_hook('auth-hook', achall.domain)
     env['CERTBOT_AUTH_OUTPUT'] = out.strip()
     self.env[achall] = env