From 53ac1e3c8afe12ff1f4a619f2f1d01b48fe7dfb0 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Mon, 15 Feb 2016 20:17:31 +0100 Subject: Add domain --- cmd/acme/config.go | 35 ++++++++++++++++++++++++++--------- cmd/acme/dim13.yaml | 2 -- 2 files changed, 26 insertions(+), 11 deletions(-) diff --git a/cmd/acme/config.go b/cmd/acme/config.go index e58aad7..04b9ab2 100644 --- a/cmd/acme/config.go +++ b/cmd/acme/config.go @@ -108,16 +108,33 @@ func LoadConfig(fname string) (*Config, error) { v.Key = path.Join(c.BaseDir, v.Key) v.Cert = path.Join(c.BaseDir, v.Cert) } - switch len(v.Altnames) { - case 0: - return nil, errNoAltNames - case 1: - an := v.Altnames[0] - if strings.HasPrefix(an, "www.") { - v.Altnames = append(v.Altnames, an[4:]) - } - } + v.Altnames = checkWWW(v.Altnames) c.Desire[k] = v } return c, nil } + +func checkWWW(altnames []string) []string { + find := func(prefix string) (ret []string) { + for _, an := range altnames { + if strings.HasPrefix(an, prefix) { + ret = append(ret, an[len(prefix):]) + } + } + return + } + has := func(s string) bool { + for _, an := range altnames { + if an == s { + return true + } + } + return false + } + for _, d := range find("www.") { + if !has(d) { + altnames = append(altnames, d) + } + } + return altnames +} diff --git a/cmd/acme/dim13.yaml b/cmd/acme/dim13.yaml index d98f1cb..99731e6 100644 --- a/cmd/acme/dim13.yaml +++ b/cmd/acme/dim13.yaml @@ -18,7 +18,6 @@ desire: - mail.dim13.org - smtp.dim13.org - imap.dim13.org - - dim13.org key: private/mail_dim13_org.key cert: certs/mail_dim13_org.pem web: @@ -29,6 +28,5 @@ desire: - mail.dim13.org - git.dim13.org - cvs.dim13.org - - dim13.org key: private/www_dim13_org.key cert: certs/www_dim13_org.pem -- cgit v1.2.3