#证书 #firefox #mtls #x509 #pkcs11 #配置 #配置管理

ff-carl

一个简单的实用库,用于自动化Firefox的mTLS主机:证书分配(ClientAuthRememberList.bin)文件

1个不稳定版本

0.1.1 2024年2月21日
0.1.0 2024年2月20日

#439 in 身份验证

每月下载28

MPL-2.0许可证

17KB
160 代码行

FF-CARL

一个用于自动化Firefox的mTLS主机:证书偏好分配文件(ClientAuthRememberList.bin)的实用库。

概述

根据Firefox的策略模板,这应该与policies.json证书配置管理一起使用,特别是对于存储在文件系统中的证书的证书 -> 安装部分,以及对于存储在PKCS#11中的证书的安全设备部分。

对于其配置,FF-CARL目前需要x509客户端证书以DER格式存在。如果证书字节不是DER编码的,或者DER证书无法被解析,则库将崩溃。请注意,用于配置的DER证书不需要是Firefox所知的完全相同的证书,只需是其DER编码版本即可!

示例

使用你的Cargo.toml文件引入lib

[dependencies]
ff-carl = "0.1.0"

并运行示例(确保适当地替换文件系统路径)

use ff_carl::write_entry;
use ff_carl::EntryArgs;
use std::path::PathBuf;

fn main() -> Result<(), std::io::Error> {
     let der_cert = std::fs::read("/path/to/cert.der").unwrap();
     let entry_args = EntryArgs::new(
         "https", // scheme
         "mtls.cert-demo.com", // ascii_host
         443, // port
         "cert-demo.com", // base_domain
         der_cert.as_ref(), // DER cert byte array
     );

     let backing_path = PathBuf::from("/path/to/firefox/profile/ClientAuthRememberList.bin");

     write_entry(entry_args, backing_path)
}

要写入多个主机:证书ClientAuthRememberList 条目值,请使用ff_carl::write_entries函数。

依赖关系

~5MB
~103K SLoC