fix: wildcard certificates names on Windows.

This commit is contained in:
Fernandez Ludovic 2019-04-25 21:22:33 +02:00
parent ac45aaac27
commit 1001ead866
3 changed files with 24 additions and 8 deletions

View File

@ -23,7 +23,7 @@ type FileInfo struct {
// Dump Dumps data to certificates.
func Dump(data *StoredData, baseConfig *BaseConfig) error {
if baseConfig.Clean {
err := clean(baseConfig.DumpPath)
err := cleanDir(baseConfig.DumpPath)
if err != nil {
return err
}
@ -61,10 +61,10 @@ func Dump(data *StoredData, baseConfig *BaseConfig) error {
}
func writeCert(dumpPath string, cert *Certificate, info FileInfo, domainSubDir bool) error {
certPath := filepath.Join(dumpPath, certsSubDir, cert.Domain.Main+info.Ext)
certPath := filepath.Join(dumpPath, certsSubDir, safeName(cert.Domain.Main+info.Ext))
if domainSubDir {
certPath = filepath.Join(dumpPath, cert.Domain.Main, info.Name+info.Ext)
if err := os.MkdirAll(filepath.Join(dumpPath, cert.Domain.Main), 0755); err != nil {
certPath = filepath.Join(dumpPath, safeName(cert.Domain.Main), info.Name+info.Ext)
if err := os.MkdirAll(filepath.Join(dumpPath, safeName(cert.Domain.Main)), 0755); err != nil {
return err
}
}
@ -73,10 +73,10 @@ func writeCert(dumpPath string, cert *Certificate, info FileInfo, domainSubDir b
}
func writeKey(dumpPath string, cert *Certificate, info FileInfo, domainSubDir bool) error {
keyPath := filepath.Join(dumpPath, keysSubDir, cert.Domain.Main+info.Ext)
keyPath := filepath.Join(dumpPath, keysSubDir, safeName(cert.Domain.Main+info.Ext))
if domainSubDir {
keyPath = filepath.Join(dumpPath, cert.Domain.Main, info.Name+info.Ext)
if err := os.MkdirAll(filepath.Join(dumpPath, cert.Domain.Main), 0755); err != nil {
keyPath = filepath.Join(dumpPath, safeName(cert.Domain.Main), info.Name+info.Ext)
if err := os.MkdirAll(filepath.Join(dumpPath, safeName(cert.Domain.Main)), 0755); err != nil {
return err
}
}
@ -104,7 +104,7 @@ func extractPEMPrivateKey(account *Account) []byte {
return pem.EncodeToMemory(block)
}
func clean(dumpPath string) error {
func cleanDir(dumpPath string) error {
_, errExists := os.Stat(dumpPath)
if os.IsNotExist(errExists) {
return nil

7
dumper/filename.go Normal file
View File

@ -0,0 +1,7 @@
// +build !windows
package dumper
func safeName(filename string) string {
return filename
}

View File

@ -0,0 +1,9 @@
// +build windows
package dumper
import "strings"
func safeName(filename string) string {
return strings.ReplaceAll(filename, "*", "_")
}