登录
首页 >  Golang >  Go问答

Caddy Server Certmagic - 无效内存地址

来源:stackoverflow

时间:2024-04-27 15:36:34 255浏览 收藏

最近发现不少小伙伴都对Golang很感兴趣,所以今天继续给大家介绍Golang相关的知识,本文《Caddy Server Certmagic - 无效内存地址》主要内容涉及到等等知识点,希望能帮到你!当然如果阅读本文时存在不同想法,可以在评论中表达,但是请勿使用过激的措辞~

问题内容

我正在尝试使用 certmagic 设置服务器,但每次运行代码时,我都会收到以下堆栈消息,我在网上查看的所有地方都说您只需要执行 certmagic.https([]string{"my- domain.com"},路由器) 但这里一定缺少一些东西?

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/[email protected]/logger.go:265 +0x987
go.uber.org/zap.(*logger).debug(0x0, 0xc000026858, 0x11, 0xc000064f40, 0x1, 0x1)
    /.../go/pkg/mod/go.uber.org/[email protected]/logger.go:180 +0x45
github.com/caddyserver/certmagic.(*config).obtaincert.func2(0x8f2e70, 0xc0000240e0, 0x8f5370, 0xb14d30)
    /.../go/pkg/mod/github.com/caddyserver/[email protected]/config.go:511 +0x5c5
github.com/caddyserver/certmagic.(*config).obtaincert(0xc0000952c0, 0x8f2e70, 0xc0000240e0, 0x873baf, 0x16, 0x1, 0x0, 0x0)
    /.../go/pkg/mod/github.com/caddyserver/[email protected]/config.go:566 +0x3a8
github.com/caddyserver/certmagic.(*config).obtaincertsync(...)
    /.../go/pkg/mod/github.com/caddyserver/[email protected]/config.go:421
github.com/caddyserver/certmagic.(*config).manageone.func1(0x842da0, 0xc000064400)
    /.../go/pkg/mod/github.com/caddyserver/[email protected]/config.go:334 +0x412
github.com/caddyserver/certmagic.(*config).manageone(0xc0000952c0, 0x8f2e70, 0xc0000240e0, 0x873baf, 0x16, 0x0, 0x0, 0x8f5370)
    /.../go/pkg/mod/github.com/caddyserver/[email protected]/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/[email protected]/config.go:312 +0x1f1
github.com/caddyserver/certmagic.(*config).managesync(...)
    /.../go/pkg/mod/github.com/caddyserver/[email protected]/config.go:251
github.com/caddyserver/certmagic.https(0xc000020f60, 0x1, 0x1, 0x8ec800, 0xc0000da0c0, 0x0, 0x0)
    /.../go/pkg/mod/github.com/caddyserver/[email protected]/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。

以上就是《Caddy Server Certmagic - 无效内存地址》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>