letsencrypt/test-certs-site

GitHub: letsencrypt/test-certs-site

这是一个基于 Go 的测试服务器,能够通过 ACME 协议自动获取并托管有效、已吊销和已过期证书,以满足 CA/Browser Forum 基线要求的合规性测试。

Stars: 15 | Forks: 3

# test-certs-site ## 简介 这是一个专用的 Web 服务器,用于托管 CA/Browser Forum 基线要求所需的测试页面。它们包含以下要求: 它使用 ACME 协议获取证书。它提供了一个简单的网站,其中包含一些解释测试站点用途的信息。 来自 CA/Browser Forum TLS 基线要求: 虽然这是为 Let's Encrypt 构建的,但它应该可以被其他 ACME CA 使用。 ## 运行 test-certs-site 这是一个独立的 Go 程序。 ``` go run main.go -config [path/to/config.json] ``` 请参阅 `config/config.go` 了解配置模式。请参阅 `config/testdata/test.json` 或 `integration/test-certs-site-config.json` 了解有效配置的示例。 ## 本地测试 我们提供了一个 `docker-compose.yml` 文件用于本地测试。它将自动部署 [Pebble](https://github.com/letsencrypt/pebble),这是一个测试 CA。执行: ``` docker-compose up --build ``` 然后,访问其中一个测试站点。 它们可以在以下地址访问: * https://valid.localhost:5001/ * https://revoked.localhost:5001/ * https://expired.localhost:5001/ 这些 URL 可能会立即生效,但如果它们在你的系统上无法解析,你可以让 curl 来解析它们: ``` curl -k --resolve revoked.localhost:5001:127.0.0.1 'https://revoked.localhost:5001/' ``` 如果你想从浏览器访问这些站点,请编辑你的 `/etc/hosts` 文件以包含测试证书地址。 ``` 127.0.0.1 valid.localhost revoked.localhost expired.localhost ``` ## 避免事故 该软件的灵感来源于我们从其他 CA 观察到的几次事故,以及我们使用现成工具的现有解决方案的复杂性。 我们观察到的一些事故类别包括: * 对于有效和已吊销的站点,允许证书错误过期。 * 在已吊销的演示站点上提供未吊销的证书。 具有 ACME 集成的服务器是确保证书保持最新状态的最可靠方式,但提供已吊销和过期证书这一特殊要求并不是其他系统的典型功能。监控系统通常也不支持确保证书已被吊销或过期。 ## ACME 质询 目前,test-certs-site 仅支持 TLS-ALPN-01 验证方法。 为了满足此质询并提供测试站点,该程序监听一个可配置的端口,该端口应作为 TLS 端口 :443 暴露。 请注意,测试配置默认监听 :5001,这与 [Pebble 的](https://github.com/letsencrypt/pebble) 默认验证端口相匹配。 ## 密钥和证书存储 目前,test-certs-site 将所有密钥材料作为磁盘路径存储。 为了方便在云或临时环境中运行 cert-test-program,我们将希望支持某种将密钥持久化到密钥管理的机制。 除了密钥和证书存储外,该程序是无状态的。 ## 可观测性 有一个可配置的调试监听器,它暴露了 /debug/pprof 和 /metrics。 日志以 JSON 格式打印到 stderr。
标签:ACME协议, CA/Browser Forum, Docker, docker-compose, EVTX分析, Go语言, Homebrew安装, HTTPS, Let's Encrypt, Pebble, SSL证书, TLS证书, Web服务器, 中间件, 安全防御评估, 日志审计, 本地测试, 根证书, 测试工具, 程序破解, 网络安全, 自动化运维, 证书吊销, 证书管理, 证书过期, 请求拦截, 隐私保护