aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2016-02-15 20:17:31 +0100
committerDimitri Sokolyuk <demon@dim13.org>2016-02-15 20:17:31 +0100
commit53ac1e3c8afe12ff1f4a619f2f1d01b48fe7dfb0 (patch)
treeaf0dbdd226852efc76c81d143ab5a20c74794793
parent3ed9bdad5be04f36d7379eca6321d98139e6ac1a (diff)
Add domain
-rw-r--r--cmd/acme/config.go35
-rw-r--r--cmd/acme/dim13.yaml2
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