使用此代码,我正在尝试手动 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 服务器可能不会挑战我的服务器?
侃侃尔雅
相关分类