-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.go
45 lines (40 loc) · 822 Bytes
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package main
import (
"net/http"
"github.com/go-chi/chi"
vapi "github.com/hashicorp/vault/api"
vaultpki "github.com/vtorhonen/go-vault-pki"
)
const (
pkiMount = "pki"
pkiRole = "service-consul"
serviceCN = "foo.service.consul"
certTTL = "3600"
)
func main() {
cfg := vapi.DefaultConfig()
cfg.ConfigureTLS(&vapi.TLSConfig{
Insecure: true,
})
v, err := vaultpki.NewWithConfig(pkiMount, pkiRole, serviceCN, certTTL, cfg)
if err != nil {
panic(err)
}
tlsCfg, err := v.RefreshTLSConfig()
if err != nil {
panic(err)
}
r := chi.NewRouter()
r.Get("/", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("welcome"))
})
srv := http.Server{
Addr: "0.0.0.0:18080",
Handler: r,
TLSConfig: tlsCfg,
}
err = srv.ListenAndServeTLS("", "")
if err != nil {
panic(err)
}
}