为了账号安全,请及时绑定邮箱和手机立即绑定

Golang ACMEv2 HTTP-01 挑战不挑战服务器

Golang ACMEv2 HTTP-01 挑战不挑战服务器

Go
米琪卡哇伊 2023-01-03 15:50:15
使用此代码,我正在尝试手动 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 服务器在域的端口 80 上可用billabull.com,并且向质询路径发出 GET 请求确实返回了正确的密钥授权。但是,ACME 服务器从不向服务器发出请求。有谁知道为什么 ACME 服务器可能不会挑战我的服务器?
查看完整描述

1 回答

?
侃侃尔雅

TA贡献1801条经验 获得超15个赞

我不得不使用一个主体[]byte("{}")而不是[]byte{}挑战端点

编辑:出于某种原因,这个端点不会出错,但如果你传递了不正确的正文,其他人会


查看完整回答
反对 回复 2023-01-03
  • 1 回答
  • 0 关注
  • 90 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信