diff --git a/dumper.go b/dumper.go index 2e5cebe..a55df43 100644 --- a/dumper.go +++ b/dumper.go @@ -40,7 +40,7 @@ type Account struct { KeyType certcrypto.KeyType } -func dump(acmeFile, dumpPath string) error { +func dump(acmeFile, dumpPath string, crtExt, keyExt string) error { f, err := os.Open(acmeFile) if err != nil { return err @@ -66,18 +66,18 @@ func dump(acmeFile, dumpPath string) error { } privateKeyPem := extractPEMPrivateKey(data.Account) - err = ioutil.WriteFile(filepath.Join(dumpPath, "private", "letsencrypt.key"), privateKeyPem, 0666) + err = ioutil.WriteFile(filepath.Join(dumpPath, "private", "letsencrypt"+keyExt), privateKeyPem, 0666) if err != nil { return err } for _, cert := range data.Certificates { - err = ioutil.WriteFile(filepath.Join(dumpPath, "private", cert.Domain.Main+".key"), cert.Key, 0666) + err = ioutil.WriteFile(filepath.Join(dumpPath, "private", cert.Domain.Main+keyExt), cert.Key, 0666) if err != nil { return err } - err = ioutil.WriteFile(filepath.Join(dumpPath, "certs", cert.Domain.Main+".crt"), cert.Certificate, 0666) + err = ioutil.WriteFile(filepath.Join(dumpPath, "certs", cert.Domain.Main+crtExt), cert.Certificate, 0666) if err != nil { return err } diff --git a/main.go b/main.go index 2cbcb04..8b2c755 100644 --- a/main.go +++ b/main.go @@ -23,8 +23,10 @@ func main() { Run: func(cmd *cobra.Command, _ []string) { acmeFile := cmd.Flag("source").Value.String() dumpPath := cmd.Flag("dest").Value.String() + crtExt := cmd.Flag("crt-ext").Value.String() + keyExt := cmd.Flag("key-ext").Value.String() - err := dump(acmeFile, dumpPath) + err := dump(acmeFile, dumpPath, crtExt, keyExt) if err != nil { log.Fatal(err) } @@ -33,6 +35,8 @@ func main() { dumpCmd.Flags().String("source", "./acme.json", "Path to 'acme.json' file.") dumpCmd.Flags().String("dest", "./dump", "Path to store the dump content.") + dumpCmd.Flags().String("crt-ext", ".crt", "The file extension of the generated certificates") + dumpCmd.Flags().String("key-ext", ".key", "The file extension of the generated privates keys") rootCmd.AddCommand(dumpCmd) var versionCmd = &cobra.Command{ diff --git a/readme.md b/readme.md index 394e51e..aadfd6c 100644 --- a/readme.md +++ b/readme.md @@ -29,9 +29,11 @@ Usage: traefik-certs-dumper dump [flags] Flags: - --dest string Path to store the dump content. (default "./dump") - -h, --help help for dump - --source string Path to 'acme.json' file. (default "./acme.json") + --crt-ext string The file extension of the generated certificates (default ".crt") + --dest string Path to store the dump content. (default "./dump") + -h, --help help for dump + --key-ext string The file extension of the generated privates keys (default ".key") + --source string Path to 'acme.json' file. (default "./acme.json") ``` ## Examples @@ -43,3 +45,13 @@ traefik-certs-dumper dump ```bash traefik-certs-dumper dump --source ./acme.json --dest ./dump ``` + +```bash +traefik-certs-dumper dump --crt-ext=.pem --key-ext=.pem + +``` + +- https://github.com/containous/traefik/issues/4381 +- https://github.com/containous/traefik/issues/2418 +- https://github.com/containous/traefik/issues/3847 +- https://github.com/SvenDowideit/traefik-certdumper