2 个不稳定版本
0.2.0 | 2023年10月9日 |
---|---|
0.1.0 | 2023年10月7日 |
#2308 in 密码学
34KB
704 行
myca
My CA 是一款生成 TLS 证书链的开发者工具。它旨在用于开发工作流程,并且目前可以生成由 1 个根 CA 和 1 个端实体证书组成的证书链,以及私钥。端实体将由根 CA 签名。
特性
- 简单
- 经过测试
- 灵活
安装
当前最简单的方法是使用 cargo install myca
命令安装。您也可以克隆此存储库,并使用 cargo build
命令构建它。
用法
编译二进制文件后,您只需传递输出文件的路径。
myca -o output/dir/
在输出目录中,您将找到以下文件
cert.pem
(由root-ca
的密钥签名的端实体的 X509 证书)cert.key.pem
(端实体的私钥)root-ca.pem
(CA 的自签名 x509 证书)root-ca.key.pem
(CA 的私钥)
root-ca.key.pem
仅在您想要稍后使用它进行操作(如签名更多端实体证书)时才存在。如果您计划将这些文件用作测试/开发中的临时丢弃的秘密,您应该非常小心地处理它。如果您不需要它,请销毁它。
或者使用 cargo run
cargo run -- -o output/dir
然后您可以使用此工具查看输出证书(或任何 x509 证书)的内容。
myca --parse path/to/cert.pem
支持的完整选项列表
myca --help
常见问题解答
有哪些签名方案可用?
- pkcs_ecdsa_p256_sha256
- pkcs_ecdsa_p384_sha384
- pkcs_ed25519
- pkcs_rsa_sha256
- pkcs_rsa_sha384
- pkcs_rsa_sha512
为什么我的客户端无法与服务器进行认证?
在生成客户端认证证书时,请确保传递 --clientauth
。
我该如何使用它进行双向认证?
本质上,运行 myca
两次。将 root-ca.pem
复制到 authticator,将 cert.pem
和 cert.key.pem
复制到需要认证的设备。这可能不是一个很好的解释。让我想想,稍后再问。
理由
自签名证书很棒,但它们不允许您测试认证。bash 中的 openssl 很棒,但您必须知道很多才能输出有效的证书链。随着您的应用程序的发展,您的 bash 脚本集合可能会变得很大且难以维护。这个工具旨在通过仅提供输出目录来生成有效的证书链,并且足够灵活,您可以轻松修改所需的参数。
依赖项
约 16MB
约 385K SLoC