def request_cert(args, config): root_cert_advise() key, csr = csr_util.prepare(args.email, config, key_path=args.key_path, usage=args.usage) ## Reparse for including --csr arguments cli_args = prepare_cli_args(args) if (args.dry_run): cli_args.extend(['--dry-run']) for email in args.email: cli_args.extend(['-d', email]) cli_args.extend(['--csr', csr.file]) if (args.imap): cli_args.extend(['-a', 'castle-imap']) cli_args.extend(['--castle-imap-login', args.login]) cli_args.extend(['--castle-imap-password', args.password]) cli_args.extend(['--castle-imap-host', args.host]) if (args.port): cli_args.extend(['--castle-imap-port', args.port]) if (args.ssl): cli_args.extend(['--castle-imap-ssl']) if (args.smtp_method): cli_args.extend(['--castle-imap-smtp-method', args.smtp_method]) if (args.smtp_login): cli_args.extend(['--castle-imap-smtp-login', args.smtp_login]) if (args.smtp_password): cli_args.extend( ['--castle-imap-smtp-password', args.smtp_password]) cli_args.extend(['--castle-imap-smtp-host', args.smtp_host]) if (args.smtp_port): cli_args.extend(['--castle-imap-smtp-port', args.smtp_port]) elif (args.outlook): cli_args.extend(['-a', 'castle-mapi']) cli_args.extend(['--castle-mapi-account', args.outlook_account]) else: cli_args.extend(['-a', 'castle-interactive']) cli_args.extend(['-i', 'castle-installer']) if (args.no_passphrase): cli_args.extend(['--castle-installer-no-passphrase']) elif (args.passphrase): cli_args.extend(['--castle-installer-passphrase', args.passphrase]) cli_args.extend(['-m', args.contact]) if (args.agree_tos): cli_args.extend(['--agree-tos']) config, plugins = prepare_config(cli_args) config.cert_path = config.live_dir + '/cert.pem' config.chain_path = config.live_dir + '/ca.pem' config.fullchain_path = config.live_dir + '/chain.pem' config.key_path = key.file try: # installers are used in auth mode to determine domain names installer, auth = plug_sel.choose_configurator_plugins( config, plugins, "certonly") except errors.PluginSelectionError as e: logger.info("Could not choose appropriate plugin: %s", e) raise le_client = certbot_main._init_le_client(config, auth, installer) cert_path, chain_path, fullchain_path = certbot_main._csr_get_and_save_cert( config, le_client) config.cert_path = cert_path config.fullchain_path = fullchain_path config.chain_path = chain_path certbot_main._csr_report_new_cert(config, cert_path, chain_path, fullchain_path) if (not config.dry_run): certbot_main._install_cert(config, le_client, args.email) else: util.safely_remove(csr.file)
def _call(self): from certbot.util import safely_remove return safely_remove(self.path)