jxskiss / simplessl

On the fly SSL certificate issue and renewal inside OpenResty with Let's Encrypt
MIT License
45 stars 13 forks source link

runtime error: invalid memory address or nil pointer dereference #10

Closed devzorg closed 1 year ago

devzorg commented 1 year ago

Hello Experience some issue, can you help to resolve this? Works in docker container, may be need some params?

openresty-ssl-server-1  | 2022-09-15T09:36:13.531Z      INFO    http/server.go:3197     http: panic serving 172.22.0.4:49688: runtime error: invalid memory address or nil pointer dereference
openresty-ssl-server-1  | goroutine 20 [running]:
openresty-ssl-server-1  | net/http.(*conn).serve.func1()
openresty-ssl-server-1  |       /usr/local/go/src/net/http/server.go:1825 +0xbf
openresty-ssl-server-1  | panic({0x17c0780, 0x2befda0})
openresty-ssl-server-1  |       /usr/local/go/src/runtime/panic.go:844 +0x258
openresty-ssl-server-1  | github.com/jxskiss/ssl-cert-server/server.(*acmeImpl).newACMEClient(0xc0004690e0, {0x1e1dd70, 0xc000459080}, {0x0?, 0x0?})
openresty-ssl-server-1  |       /go/pkg/mod/github.com/jxskiss/ssl-cert-server@v0.6.1/server/acme_client.go:62 +0x55d
openresty-ssl-server-1  | github.com/jxskiss/ssl-cert-server/server.(*acmeImpl).issueCertificate(0xc0004690e0, {0x1e1dd70, 0xc000459080}, {0x0, 0x0}, {0xc000476d10, 0x1, 0x1})
openresty-ssl-server-1  |       /go/pkg/mod/github.com/jxskiss/ssl-cert-server@v0.6.1/server/acme_client.go:77 +0x9c
openresty-ssl-server-1  | github.com/jxskiss/ssl-cert-server/server.(*acmeImpl).loadOnDemandCertificateFromStorageOrCreate(0xc0004690e0, {0x1e1dd70, 0xc000459080}, 0xc000458ec0, 0x1)
openresty-ssl-server-1  |       /go/pkg/mod/github.com/jxskiss/ssl-cert-server@v0.6.1/server/acme.go:206 +0x33c
openresty-ssl-server-1  | github.com/jxskiss/ssl-cert-server/server.(*acmeImpl)._getOnDemandCertificate(0xc0004690e0, {0x1e1dd70, 0xc000459080}, {0xc000453d4a, 0xd}, 0xea?)
openresty-ssl-server-1  |       /go/pkg/mod/github.com/jxskiss/ssl-cert-server@v0.6.1/server/acme.go:172 +0x125
openresty-ssl-server-1  | github.com/jxskiss/ssl-cert-server/server.(*acmeImpl).GetOnDemandCertificate(0xc0004690e0, {0x1e1dd70?, 0xc000459080}, {0xc000453d4a, 0xd}, 0x0?)
openresty-ssl-server-1  |       /go/pkg/mod/github.com/jxskiss/ssl-cert-server@v0.6.1/server/acme.go:147 +0x4a
openresty-ssl-server-1  | github.com/jxskiss/ssl-cert-server/server.(*Server).GetCertificate(0xc00007d260, {0x1e1dd70, 0xc000459080}, 0x4?)
openresty-ssl-server-1  |       /go/pkg/mod/github.com/jxskiss/ssl-cert-server@v0.6.1/server/server.go:90 +0x469
openresty-ssl-server-1  | github.com/jxskiss/ssl-cert-server/server.(*v1APIImpl).HandleCertificate(0xc00041ea80, {0x1e1d3d8, 0xc0000f2700}, 0xc000172800?)
jxskiss commented 1 year ago

Ha I haven't seen this before, will give it a look soon.

devzorg commented 1 year ago

Thanks, Iam online and could try options to fix if need. Also have tryed outside of container, on the server the same thing.

devzorg commented 1 year ago

perhaps need to check if cert is not nil before trying access to cert.DNSCredentials in server/acme_client.go:62 !?

jxskiss commented 1 year ago

Fixed by #12, going to close this issue.