aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--account.go2
-rw-r--r--acme.toml2
-rw-r--r--cmd/acme/config.go45
-rw-r--r--cmd/acme/docker.toml2
-rw-r--r--cmd/acme/main.go31
5 files changed, 22 insertions, 60 deletions
diff --git a/account.go b/account.go
index 34040d6..abf10e2 100644
--- a/account.go
+++ b/account.go
@@ -91,7 +91,7 @@ func KeyAuthorization(s Thumber, token string) (string, error) {
return token + "." + thumb, nil
}
-func (a *Account) Save(fname string) error {
+func (a *Account) SaveKey(fname string) error {
fd, err := CreateKeyFile(fname)
if err != nil {
return err
diff --git a/acme.toml b/acme.toml
index 3ee1c83..222e474 100644
--- a/acme.toml
+++ b/acme.toml
@@ -4,7 +4,7 @@ listen = "localhost:8443"
basedir = ".acme" # usually "/etc/ssl"
provider = "les"
account = "webmaster"
-size = 2048 # default key size
+keysize = 2048 # default key size
#[provider.lev1]
#directory = "https://acme-v01.api.letsencrypt.org/directory"
diff --git a/cmd/acme/config.go b/cmd/acme/config.go
index eca8117..0dd396c 100644
--- a/cmd/acme/config.go
+++ b/cmd/acme/config.go
@@ -29,7 +29,7 @@ type defaults struct {
Provider string
Account string
Basedir string
- Size int
+ KeySize int
}
type provider struct {
@@ -38,10 +38,10 @@ type provider struct {
}
type account struct {
- Mail string
- Phone string
- Size int
- Key string
+ Mail string
+ Phone string
+ KeySize int
+ Key string
*acme.Account
acme.Contacts
}
@@ -54,7 +54,7 @@ type desire struct {
Provider string
Account string
Altnames []string
- Size int
+ KeySize int
Key string
Cert string
Webroot string
@@ -80,8 +80,8 @@ func LoadConfig(fname string) (*Config, error) {
return nil, err
}
// apply defaults
- if c.Defaults.Size == 0 {
- c.Defaults.Size = defKeySize
+ if c.Defaults.KeySize == 0 {
+ c.Defaults.KeySize = defKeySize
}
if c.Defaults.Listen == "" {
c.Defaults.Listen = "localhost:8080"
@@ -90,8 +90,8 @@ func LoadConfig(fname string) (*Config, error) {
c.Defaults.ListenTLS = c.Defaults.Listen
}
for k, v := range c.Account {
- if v.Size == 0 {
- v.Size = c.Defaults.Size
+ if v.KeySize == 0 {
+ v.KeySize = c.Defaults.KeySize
}
if v.Mail == "" {
return nil, errNoMail
@@ -121,8 +121,8 @@ func LoadConfig(fname string) (*Config, error) {
}
}
v.account = c.Account[v.Account]
- if v.Size == 0 {
- v.Size = c.Defaults.Size
+ if v.KeySize == 0 {
+ v.KeySize = c.Defaults.KeySize
}
if v.Key == "" {
return nil, errNoKey
@@ -148,17 +148,6 @@ func LoadConfig(fname string) (*Config, error) {
return c, nil
}
-type PrivKey interface {
- KeyPath() string
- KeySize() int
- HasKey() bool
-}
-
-type Cert interface {
- CertPath() string
- HasCert() bool
-}
-
func exists(fname string) bool {
if _, err := os.Stat(fname); os.IsNotExist(err) {
return false
@@ -166,16 +155,6 @@ func exists(fname string) bool {
return true
}
-func (d desire) CertPath() string { return d.Cert }
-func (d desire) KeyPath() string { return d.Key }
-func (d desire) KeySize() int { return d.Size }
-func (d desire) HasKey() bool { return exists(d.Key) }
-func (d desire) HasCert() bool { return exists(d.Cert) }
-
-func (a account) KeyPath() string { return a.Key }
-func (a account) KeySize() int { return a.Size }
-func (a account) HasKey() bool { return exists(a.Key) }
-
type duration struct{ time.Duration }
func (d *duration) UnmarshalText(s []byte) error {
diff --git a/cmd/acme/docker.toml b/cmd/acme/docker.toml
index b4e571e..d9f54ca 100644
--- a/cmd/acme/docker.toml
+++ b/cmd/acme/docker.toml
@@ -4,7 +4,7 @@ listen = ":8080"
basedir = ".acme" # usually "/etc/ssl"
provider = "les"
account = "webmaster"
-size = 2048 # default key size
+keysize = 2048 # default key size
[provider.les]
directory = "https://acme-staging.api.letsencrypt.org/directory"
diff --git a/cmd/acme/main.go b/cmd/acme/main.go
index 898536e..f0fb67d 100644
--- a/cmd/acme/main.go
+++ b/cmd/acme/main.go
@@ -1,10 +1,8 @@
package main
import (
- "crypto/rsa"
"flag"
"log"
- "os"
"sync"
"dim13.org/acme"
@@ -12,25 +10,6 @@ import (
var confName = flag.String("conf", "acme.toml", "configuration file")
-func chkKey(k PrivKey) (*rsa.PrivateKey, error) {
- key := k.KeyPath()
- if k.HasKey() {
- fd, err := os.Open(key)
- if err != nil {
- return nil, err
- }
- defer fd.Close()
- return acme.LoadKey(fd)
- } else {
- fd, err := acme.CreateKeyFile(key)
- if err != nil {
- return nil, err
- }
- defer fd.Close()
- return acme.NewKey(fd, k.KeySize())
- }
-}
-
func main() {
flag.Parse()
conf, err := LoadConfig(*confName)
@@ -49,7 +28,11 @@ func main() {
if err != nil {
log.Println(err)
log.Println("NewAccount", k)
- acc.Account, err = acme.NewAccount(acc.Size)
+ acc.Account, err = acme.NewAccount(acc.KeySize)
+ if err != nil {
+ log.Fatal(err)
+ }
+ err = acc.Account.SaveKey(acc.Key)
if err != nil {
log.Fatal(err)
}
@@ -65,7 +48,7 @@ func main() {
go func(k string, des *desire) {
defer wg.Done()
log.Println("NewDesire", k)
- des.Desire, err = acme.NewDesire(des.Altnames, des.Size)
+ des.Desire, err = acme.NewDesire(des.Altnames, des.KeySize)
if err != nil {
log.Fatal(err)
}
@@ -95,7 +78,7 @@ func main() {
log.Fatal("register", err)
}
- d, err := acme.NewDesire(des.Altnames, des.Size)
+ d, err := acme.NewDesire(des.Altnames, des.KeySize)
if err != nil {
log.Fatal("newDesire", err)
}