Caddy Server Certmagic - 无效的内存地址
Caddy Server Certmagic - invalid memory address
我正在尝试使用 certmagic 设置服务器,但每次我 运行 代码时,我都会收到下面的堆栈消息,我在网上看到的所有地方都说你只需要做 certmagic.HTTPS([]string{"my-domain.com"}, router)
但这里一定少了什么?
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x6dd407]
goroutine 1 [running]:
go.uber.org/zap.(*Logger).check(0x0, 0xff, 0xc000026858, 0x11, 0xc000064f40)
/.../go/pkg/mod/go.uber.org/zap@v1.17.0/logger.go:265 +0x987
go.uber.org/zap.(*Logger).Debug(0x0, 0xc000026858, 0x11, 0xc000064f40, 0x1, 0x1)
/.../go/pkg/mod/go.uber.org/zap@v1.17.0/logger.go:180 +0x45
github.com/caddyserver/certmagic.(*Config).obtainCert.func2(0x8f2e70, 0xc0000240e0, 0x8f5370, 0xb14d30)
/.../go/pkg/mod/github.com/caddyserver/certmagic@v0.14.0/config.go:511 +0x5c5
github.com/caddyserver/certmagic.(*Config).obtainCert(0xc0000952c0, 0x8f2e70, 0xc0000240e0, 0x873baf, 0x16, 0x1, 0x0, 0x0)
/.../go/pkg/mod/github.com/caddyserver/certmagic@v0.14.0/config.go:566 +0x3a8
github.com/caddyserver/certmagic.(*Config).ObtainCertSync(...)
/.../go/pkg/mod/github.com/caddyserver/certmagic@v0.14.0/config.go:421
github.com/caddyserver/certmagic.(*Config).manageOne.func1(0x842da0, 0xc000064400)
/.../go/pkg/mod/github.com/caddyserver/certmagic@v0.14.0/config.go:334 +0x412
github.com/caddyserver/certmagic.(*Config).manageOne(0xc0000952c0, 0x8f2e70, 0xc0000240e0, 0x873baf, 0x16, 0x0, 0x0, 0x8f5370)
/.../go/pkg/mod/github.com/caddyserver/certmagic@v0.14.0/config.go:361 +0x27b
github.com/caddyserver/certmagic.(*Config).manageAll(0xc0000952c0, 0x8f2e70, 0xc0000240e0, 0xc000020f60, 0x1, 0x1, 0xb45100, 0x0, 0x0)
/.../go/pkg/mod/github.com/caddyserver/certmagic@v0.14.0/config.go:312 +0x1f1
github.com/caddyserver/certmagic.(*Config).ManageSync(...)
/.../go/pkg/mod/github.com/caddyserver/certmagic@v0.14.0/config.go:251
github.com/caddyserver/certmagic.HTTPS(0xc000020f60, 0x1, 0x1, 0x8ec800, 0xc0000da0c0, 0x0, 0x0)
/.../go/pkg/mod/github.com/caddyserver/certmagic@v0.14.0/certmagic.go:76 +0xdb
main.main()
/var/www/test/main.go:17 +0xe7
代码是目前的最低限度,只是从头开始,了解它是如何工作的,然后再考虑将其扩展到其他项目
package main
import (
"github.com/caddyserver/certmagic"
"github.com/gorilla/mux"
"log"
"net/http"
)
func main() {
router := mux.NewRouter()
router.HandleFunc("/", func (w http.ResponseWriter, r *http.Request) {
_, _ = w.Write([]byte("Hello world"))
})
log.Fatal(certmagic.HTTPS([]string{"my-domain.com"}, router))
}
甚至更简单(以及 certmagic 上提供的示例)得到相同的错误堆栈
func main() {
handler := http.HandlerFunc(func (w http.ResponseWriter, r *http.Request) {
_, _ = w.Write([]byte("Hello world"))
})
certmagic.HTTPS([]string{"my-domain.com"}, handler)
}
这是 certmagic 中的已知错误,已修复并合并。
您可以在此处查看详细信息:https://github.com/caddyserver/certmagic/pull/135
他们似乎经常发布,所以可以等待几天等待新版本,或者同时使用主分支而不是 v0.14.0。
我正在尝试使用 certmagic 设置服务器,但每次我 运行 代码时,我都会收到下面的堆栈消息,我在网上看到的所有地方都说你只需要做 certmagic.HTTPS([]string{"my-domain.com"}, router)
但这里一定少了什么?
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x6dd407]
goroutine 1 [running]:
go.uber.org/zap.(*Logger).check(0x0, 0xff, 0xc000026858, 0x11, 0xc000064f40)
/.../go/pkg/mod/go.uber.org/zap@v1.17.0/logger.go:265 +0x987
go.uber.org/zap.(*Logger).Debug(0x0, 0xc000026858, 0x11, 0xc000064f40, 0x1, 0x1)
/.../go/pkg/mod/go.uber.org/zap@v1.17.0/logger.go:180 +0x45
github.com/caddyserver/certmagic.(*Config).obtainCert.func2(0x8f2e70, 0xc0000240e0, 0x8f5370, 0xb14d30)
/.../go/pkg/mod/github.com/caddyserver/certmagic@v0.14.0/config.go:511 +0x5c5
github.com/caddyserver/certmagic.(*Config).obtainCert(0xc0000952c0, 0x8f2e70, 0xc0000240e0, 0x873baf, 0x16, 0x1, 0x0, 0x0)
/.../go/pkg/mod/github.com/caddyserver/certmagic@v0.14.0/config.go:566 +0x3a8
github.com/caddyserver/certmagic.(*Config).ObtainCertSync(...)
/.../go/pkg/mod/github.com/caddyserver/certmagic@v0.14.0/config.go:421
github.com/caddyserver/certmagic.(*Config).manageOne.func1(0x842da0, 0xc000064400)
/.../go/pkg/mod/github.com/caddyserver/certmagic@v0.14.0/config.go:334 +0x412
github.com/caddyserver/certmagic.(*Config).manageOne(0xc0000952c0, 0x8f2e70, 0xc0000240e0, 0x873baf, 0x16, 0x0, 0x0, 0x8f5370)
/.../go/pkg/mod/github.com/caddyserver/certmagic@v0.14.0/config.go:361 +0x27b
github.com/caddyserver/certmagic.(*Config).manageAll(0xc0000952c0, 0x8f2e70, 0xc0000240e0, 0xc000020f60, 0x1, 0x1, 0xb45100, 0x0, 0x0)
/.../go/pkg/mod/github.com/caddyserver/certmagic@v0.14.0/config.go:312 +0x1f1
github.com/caddyserver/certmagic.(*Config).ManageSync(...)
/.../go/pkg/mod/github.com/caddyserver/certmagic@v0.14.0/config.go:251
github.com/caddyserver/certmagic.HTTPS(0xc000020f60, 0x1, 0x1, 0x8ec800, 0xc0000da0c0, 0x0, 0x0)
/.../go/pkg/mod/github.com/caddyserver/certmagic@v0.14.0/certmagic.go:76 +0xdb
main.main()
/var/www/test/main.go:17 +0xe7
代码是目前的最低限度,只是从头开始,了解它是如何工作的,然后再考虑将其扩展到其他项目
package main
import (
"github.com/caddyserver/certmagic"
"github.com/gorilla/mux"
"log"
"net/http"
)
func main() {
router := mux.NewRouter()
router.HandleFunc("/", func (w http.ResponseWriter, r *http.Request) {
_, _ = w.Write([]byte("Hello world"))
})
log.Fatal(certmagic.HTTPS([]string{"my-domain.com"}, router))
}
甚至更简单(以及 certmagic 上提供的示例)得到相同的错误堆栈
func main() {
handler := http.HandlerFunc(func (w http.ResponseWriter, r *http.Request) {
_, _ = w.Write([]byte("Hello world"))
})
certmagic.HTTPS([]string{"my-domain.com"}, handler)
}
这是 certmagic 中的已知错误,已修复并合并。
您可以在此处查看详细信息:https://github.com/caddyserver/certmagic/pull/135
他们似乎经常发布,所以可以等待几天等待新版本,或者同时使用主分支而不是 v0.14.0。