issue

package
v0.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 22, 2019 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Command = &cli.Command{
	Name:  "issue",
	Usage: "Issue a new certificate or renew an existing certificate. Generates private key if needed.",
	Flags: structflags.MustPopulateFlagsFromStruct(localissue.Config{}),
	Action: func(c *cli.Context) error {
		env := wcli.GlobalEnvironment
		if err := env.EnsureClientConn(c.Context); err != nil {
			return err
		}

		issuecfg, err := issue.DefaultConfig(env)
		if err != nil {
			return err
		}

		cfg := &localissue.Config{
			Issue: issuecfg,
		}

		if err := structflags.PopulateStructFromCliContext(cfg, c); err != nil {
			return err
		}

		var priv crypto.PrivateKey
		priv, cfg.PrivateKeyPath, err = localissue.ReadOrGenerateKey(env, cfg.Issue.KeyType, cfg.PrivateKeyPath)
		if err != nil {
			return fmt.Errorf("Failed to acquire private key: %w", err)
		}

		pub, err := wcrypto.ExtractPublicKey(priv)
		if err != nil {
			return err
		}

		cfg.CertPath, err = localissue.PromptCertPath(env, cfg.PrivateKeyPath, cfg.CertPath)
		if err != nil {
			return fmt.Errorf("Failed to acquire certificate file path: %w", err)
		}

		if err := frontend.EditStructWithVerifier(
			env.Frontend, localissue.ConfigTemplateText, cfg, frontend.CallVerifyMethod); err != nil {
			return err
		}

		certDer, err := issue.IssueCertificate(c.Context, env, pub, cfg.Issue)
		if err != nil {
			return err
		}

		if err := storage.WriteCertificateDerFile(cfg.CertPath, certDer); err != nil {
			return err
		}

		return nil
	},
}

Functions

This section is empty.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL