Skip to content

Commit acb3784

Browse files
committed
Security update
fix server not start in https add test argument to client that allow skip verify server certification do not send body "404 page not found" when request non api path and non api method modify validBefore turncate to 1hour
1 parent 19fbcd8 commit acb3784

File tree

5 files changed

+22
-9
lines changed

5 files changed

+22
-9
lines changed

exec/client/main.go

+11
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@ package main
33
import (
44
"pkg.para.party/certdx/pkg/client"
55

6+
"crypto/tls"
67
"fmt"
78
"io"
89
"log"
10+
"net/http"
911
"os"
1012

1113
"github.com/BurntSushi/toml"
@@ -18,6 +20,7 @@ var (
1820
)
1921

2022
var (
23+
test = flag.BoolP("test", "t", false, "Testing not verify server certification")
2124
pLogPath = flag.StringP("log", "l", "", "Log file path")
2225
help = flag.BoolP("help", "h", false, "Print help")
2326
version = flag.BoolP("version", "v", false, "Print version")
@@ -40,6 +43,14 @@ func init() {
4043
os.Exit(0)
4144
}
4245

46+
if *test {
47+
client.HttpClient.Transport = &http.Transport{
48+
TLSClientConfig: &tls.Config{
49+
InsecureSkipVerify: true,
50+
},
51+
}
52+
}
53+
4354
if *pLogPath != "" {
4455
logFile, err := os.OpenFile(*pLogPath, os.O_WRONLY|os.O_CREATE|os.O_APPEND, os.ModePerm)
4556
if err != nil {

exec/server/main.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ func serveHttps() {
125125

126126
go func() {
127127
log.Printf("[INF] Https server started")
128-
err := server.ListenAndServe()
128+
err := server.ListenAndServeTLS("", "")
129129
log.Printf("[INF] Https server stopped: %s", err)
130130
}()
131131
<-*entry.Updated.Load()
@@ -135,7 +135,7 @@ func serveHttps() {
135135

136136
func main() {
137137
if config.HttpServer.Enabled {
138-
http.HandleFunc(config.HttpServer.APIPath, server.APIHandler)
138+
http.HandleFunc("/", server.APIHandler)
139139

140140
if !config.HttpServer.Secure {
141141
log.Printf("[INF] Http server started")

pkg/client/http.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import (
1111
"time"
1212
)
1313

14-
var client = &http.Client{
14+
var HttpClient = &http.Client{
1515
Timeout: 30 * time.Second,
1616
}
1717

@@ -32,7 +32,7 @@ func GetCert(server *config.ClientHttpServer, domains []string) (*types.HttpCert
3232
}
3333
}
3434

35-
resp, err := client.Do(req)
35+
resp, err := HttpClient.Do(req)
3636
if err != nil {
3737
return nil, err
3838
}

pkg/server/http.go

+6-4
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,14 @@ import (
1010
)
1111

1212
func APIHandler(w http.ResponseWriter, r *http.Request) {
13-
if checkAuthorization(r) {
13+
if r.URL.Path == Config.HttpServer.APIPath {
1414
switch r.Method {
1515
case "POST":
16-
log.Printf("[INF] Http received cert request from: %s", r.RemoteAddr)
17-
handleCertReq(&w, r)
18-
return
16+
if checkAuthorization(r) {
17+
log.Printf("[INF] Http received cert request from: %s", r.RemoteAddr)
18+
handleCertReq(&w, r)
19+
return
20+
}
1921
default:
2022
}
2123
}

pkg/server/server.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ func (c *ServerCertCacheEntry) Renew(retry bool) (bool, error) {
6868

6969
log.Printf("[INF] Renew cert: %v", c.Domains)
7070
if !time.Now().Before(c.cert.ValidBefore) {
71-
newValidBefore := time.Now().Truncate(1 * time.Minute).Add(Config.ACME.CertLifeTimeDuration)
71+
newValidBefore := time.Now().Truncate(1 * time.Hour).Add(Config.ACME.CertLifeTimeDuration)
7272

7373
acme, err := GetACME()
7474
if err != nil {

0 commit comments

Comments
 (0)