登录
首页 >  Golang >  Go问答

Golang服务器处理ACMEv2 HTTP-01挑战

来源:stackoverflow

时间:2024-02-28 18:54:23 427浏览 收藏

目前golang学习网上已经有很多关于Golang的文章了,自己在初次阅读这些文章中,也见识到了很多学习思路;那么本文《Golang服务器处理ACMEv2 HTTP-01挑战》,也希望能帮助到大家,如果阅读完后真的对你学习Golang有帮助,欢迎动动手指,评论留言并分享~

问题内容

通过此代码,我尝试手动进行 http-01 挑战,以更好地了解该过程的工作原理。所有请求都返回 201/200 响应以及预期的主体,我能够成功创建挑战。

然而,acme 服务器似乎从未挑战 http 服务器。 当 post 到挑战 url 时,我得到了成功的返回:

2022/07/17 13:49:28 challenge response {
  "type": "http-01",
  "status": "pending",
  "url": "https://acme-staging-v02.api.letsencrypt.org/acme/chall-v3/3039193714/pvi-4a",
  "token": "yoevdky_bardm5uhmvsk3s5lpk8bsbwc-sfmrn8mklm"
}

但是,在轮询授权状态时,我可以看到它仍处于待处理状态:

2022/07/17 13:49:43 authorization response {
  "identifier": {
    "type": "dns",
    "value": "billabull.com"
  },
  "status": "pending",
  "expires": "2022-07-24T13:49:27Z",
  "challenges": [
    {
      "type": "http-01",
      "status": "pending",
      "url": "https://acme-staging-v02.api.letsencrypt.org/acme/chall-v3/3039193714/PVI-4A",
      "token": "yoevDKY_bARdM5uHmVsk3s5lPK8BsBWC-SfmRN8MkLM"
    },
    {
      "type": "dns-01",
      "status": "pending",
      "url": "https://acme-staging-v02.api.letsencrypt.org/acme/chall-v3/3039193714/uHeVHQ",
      "token": "yoevDKY_bARdM5uHmVsk3s5lPK8BsBWC-SfmRN8MkLM"
    },
    {
      "type": "tls-alpn-01",
      "status": "pending",
      "url": "https://acme-staging-v02.api.letsencrypt.org/acme/chall-v3/3039193714/RomB0g",
      "token": "yoevDKY_bARdM5uHmVsk3s5lPK8BsBWC-SfmRN8MkLM"
    }
  ]
}

目前,我在超时之前轮询了 2 分钟(服务器可用),因此我认为它应该在该时间范围内合理地发生。

我还测试了 http 服务器在域 billabull.com 的端口 80 上可用,并且向质询路径发出 get 请求确实返回正确的密钥授权。然而,acme 服务器从一开始就不会向服务器发出请求。

有谁知道为什么 acme 服务器可能不会挑战我的服务器?


正确答案


对于挑战端点,我必须使用 []byte("{}") 主体,而不是 []byte{}

编辑:由于某种原因,此端点不会出错,但如果您传递了不正确的正文,其他端点就会出错

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《Golang服务器处理ACMEv2 HTTP-01挑战》文章吧,也可关注golang学习网公众号了解相关技术文章。

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