eggsampler/acme
GitHub: eggsampler/acme
一个遵循 RFC8555 标准的 Go 语言 ACME v2 客户端库,用于自动化申请和管理 SSL/TLS 证书。
Stars: 98 | Forks: 25
# eggsampler/acme
[](https://godoc.org/github.com/eggsampler/acme)
[](https://github.com/eggsampler/acme/actions)
[](https://coveralls.io/github//eggsampler/acme)
## 关于
`eggsampler/acme` 是一个用于 [RFC8555](https://tools.ietf.org/html/rfc8555)(以前称为 ACME v2)的 Go 客户端库实现。该库可以与 [Let's Encrypt](https://letsencrypt.org/) Certificate Authority (CA) 配合使用,同时也支持其他兼容 ACME 的 CA,例如 [ZeroSSL](https://zerossl.com/)、[Google Trust Services](https://pki.goog/) 以及 https://acmeclients.com/certificate-authorities/ 上列出的其他 CA。
该库旨在提供一个无外部依赖的封装,覆盖暴露的目录 endpoint,并以易于使用的结构提供对象。
## 环境要求
至少需要 Go 1.11 版本,因为本仓库设计为作为 Go module 导入。
## 用法
只需将该 module 导入项目中,
```
import "github.com/eggsampler/acme/v3"
```
请注意末尾的 `/v3` 主版本号。由于 module 的工作机制,这是 `go.mod` 文件中所表示的主版本号,也是最新的 git 仓库 [semver](https://semver.org/) 标签。
所有函数仍然使用 `acme` 包名进行导出和调用。
## 示例
在 examples/certbot 目录中提供了一个简单的、类似 [certbot](https://certbot.eff.org/) 的示例。
此代码演示了账户注册、提交新订单、完成 challenge、完成订单以及获取已签发的证书链。
在 examples/autocert 中还提供了一个关于如何使用 autocert 包的示例。
## 测试
测试可以针对 [boulder](https://github.com/letsencrypt/boulder) 或 [pebble](https://github.com/letsencrypt/pebble) 实例运行。
challenge 的完成旨在使用 boulder 和 pebble 中内置的新 `challtestsrv` 服务器,该服务器会根据需要响应 DNS 查询和 challenge。
要针对已经在运行的 boulder 或 pebble 实例运行测试,请使用 Makefile 中的 `test` 目标。
Makefile 中还包含了一些便捷目标,它们会使用各自的 docker compose 文件来启动 pebble/boulder。
标签:ACME, EVTX分析, Go, Ruby工具, SSL证书, 内核驱动, 加密, 客户端库, 日志审计, 漏洞扫描器, 网络协议, 请求拦截