Beispiel #1
0
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)
Beispiel #2
0
 def _call(self):
     from certbot.util import safely_remove
     return safely_remove(self.path)
Beispiel #3
0
 def _call(self):
     from certbot.util import safely_remove
     return safely_remove(self.path)