对于this code,我正在try 手动HTTP-01挑战,以更好地了解该过程是如何工作的.所有的请求都会返回201/200个响应和预期的机构,我能够成功创建挑战.

然而,ACME服务器似乎从未挑战HTTP服务器.

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{}人作为挑战终点

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

Go相关问答推荐

Go汇编器命名为Constants

Go Regexp:匹配完整的单词或子字符串,或者根本不匹配

如何使用 html/template 在 golang 中运行一个范围内的范围

无效操作:v > max(类型参数 T 与 > 不可比较)

用 fork 替换 Go 依赖:...用于两个不同的模块路径

将字符串格式的x509证书生成主题名称

通过多阶段构建复制到 Docker 容器中时找不到文件

甚至用天真的洗牌分配?

Apache Beam 在 Go 中从 PCollection 中 Select 前 N 行

如何为导入的嵌入式 struct 文字提供值?

如何使用 Docker 引擎 SDK 和 Golang 运行 docker 挂载卷

使用 golang 生成 vim

Go 中的 HTTP 请求验证中间件

不能在 *gorm.db 而不是 gorm.db 上使用 WithContext(ctx) 方法

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

传递上下文的最佳方式

GOLANG 如何使用 http.FileServer 从模板目录加载某个 html 文件

Dynamodb.ScanInput - 不能使用expr.Names()(类型 map[string]*string)作为类型 map[string]string

如何在 Gorm 中获得特定日期的最大值?

在 VSCode 中使用命令行参数调试 Go 测试