rustls/upki
GitHub: rustls/upki
基于 Rust 的平台无关证书基础设施,旨在提供类似浏览器级别的高效且保护隐私的证书吊销检查机制。
Stars: 22 | Forks: 6
**upki** 实现了平台无关的、浏览器级证书基础设施。
本项目的首要目标是基于 Mozilla 的基础工作,提供可靠、保护隐私
且高效的证书吊销机制。
后续目标包括中间证书预加载、证书透明度强制执行、
复制常见的根证书不信任流程,以及支持 Merkle Tree 证书的部署。
## 吊销
此功能用于检查由受信任的公共机构颁发证书的吊销状态。它使用 [crlite-clubcard](https://eprint.iacr.org/2025/610)。
这需要一个每天更新多次的数据集。因此,`upki` 包含一个同步组件,用于获取更新的数据。
您可以随时运行 `upki fetch` 来执行此操作,但理想情况下,它应作为 [打包者安排的那样](PACKAGING.md) 在系统范围内运行。
提供了多种接口:
### 命令行界面
这适用于监控、测试和告警目的。
```
$ curl -w '%{certs}' https://google.com | upki revocation check
(...)
NotRevoked
```
### C-FFI 接口
TODO
### [Rustls](https://crates.io/crates/rustls/) 集成
[`rustls-upki`](https://crates.io/crates/rustls-upki) crate 提供了一个 rustls
服务器证书验证器,用于检查服务器证书的吊销状态。
请参阅 [文档](http://docs.rs/rustls-upki) 或 [示例代码](https://github.com/rustls/upki/blob/main/rustls-upki/examples/simpleclient.rs):
```
~/src/upki/rustls-upki$ cargo -q run --example simpleclient revoked.r6.roots.globalsign.com
Error: Custom { kind: InvalidData, error: InvalidCertificate(Revoked) }
```
# 打包
请参阅 [PACKAGING.md](PACKAGING.md)。
# 许可证
upki 根据以下两种许可证进行分发:
- Apache License version 2.0。
- MIT license。
这些许可证分别包含在 LICENSE-APACHE 和 LICENSE-MIT 文件中。您可以
根据您的选择,按照这些许可证中的任一项条款使用本软件。
标签:Apache License, C-FFI, CRLite, Merkle Tree, MIT License, Rust, Rustls, SSL, TLS, 中间件, 公钥基础设施, 可视化界面, 浏览器级, 系统工具, 网络安全, 网络安全, 网络流量审计, 证书吊销, 证书管理, 证书透明度, 证书验证, 通知系统, 防御工具, 隐私保护, 隐私保护