1 个不稳定版本
0.1.0 | 2023年4月13日 |
---|
#7 在 #mtls
11KB
103 行
cert-gen
这是一个Rust函数,用于生成由指定的证书颁发机构(CA)签名的新的SSL证书和私钥。该函数接受两个参数
ca_cert
:一个Certificate
对象,表示用于签署新证书的CA。dn_name
:一个String
对象,表示要为其生成证书的域名。
该函数使用指定的域名创建一个新的DistinguishedName
对象,并创建一个新的具有以下属性的CertificateParams
对象
distinguished_name
:具有指定域名的DistinguishedName
对象。not_before
:当前日期和时间。not_after
:当前日期和时间加20年。subject_alt_names
:一个包含域名、"localhost"以及IP地址127.0.0.1和::1的Vec<SanType>
。
然后,该函数使用CertificateParams
对象创建一个新的Certificate
对象,并使用serialize_pem_with_signer
方法使用指定的CA进行签名。最后,该函数将签名证书和私钥文件保存到磁盘上,文件名为您运行命令的目录中的certs
目录,文件名基于指定的域名。
用法
要在您的Rust代码中使用此函数,您需要导入必要的crate和依赖项,然后使用所需参数调用该函数。以下是一个示例
use rcgen::Certificate;
use signed_cert_with_ca;
// Assume `ca_cert` is a `Certificate` object representing the CA to sign the new certificate with.
let dn_name = "example.com".to_string();
signed_cert_with_ca(ca_cert, dn_name);
这将生成一个由指定CA签名的用于example.com域的新SSL证书和私钥。
依赖项
此函数依赖于以下Rust crate
rcgen:用于生成SSL证书和私钥。std::fs:用于将生成的文件保存到磁盘。
许可协议
此代码在MIT许可证下发布。有关详细信息,请参阅LICENSE文件。
感谢
没有brsnik和est31的出色帮助,这个项目无法完成,所以非常感谢他们。
依赖项
~14–25MB
~448K SLoC