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.pemcert.key.pem 复制到需要认证的设备。这可能不是一个很好的解释。让我想想,稍后再问。

理由

自签名证书很棒,但它们不允许您测试认证。bash 中的 openssl 很棒,但您必须知道很多才能输出有效的证书链。随着您的应用程序的发展,您的 bash 脚本集合可能会变得很大且难以维护。这个工具旨在通过仅提供输出目录来生成有效的证书链,并且足够灵活,您可以轻松修改所需的参数。

依赖项

约 16MB
约 385K SLoC