# cfssl

CFSSL是CloudFlare开源的一款PKI/TLS工具。 CFSSL 包含一个命令行工具 和一个用于 签名，验证并且捆绑TLS证书的 HTTP API 服务。 使用Go语言编写。

CFSSL包括：

* 一组用于生成自定义 TLS PKI 的工具
* `cfssl`程序，是CFSSL的命令行工具
* `multirootca`程序是可以使用多个签名密钥的证书颁发机构服务器
* `mkbundle`程序用于构建证书池
* `cfssljson`程序，从`cfssl`和`multirootca`程序获取JSON输出，并将证书，密钥，CSR和bundle写入磁盘

PKI（Public Key Infrastructure，公开密钥基础设施）借助数字证书和公钥加密技术提供可信任的网络身份。通常，证书就是一个包含如下身份信息的文件：

* 证书所有组织的信息
* 公钥
* 证书颁发组织的信息
* 证书颁发组织授予的权限，如证书有效期、适用的主机名、用途等
* 使用证书颁发组织私钥创建的数字签名

GitHub项目地址： [cloudflare/cfssl: CFSSL: Cloudflare's PKI and TLS toolkit (github.com)](https://github.com/cloudflare/cfssl)

## 安装cfssl

二进制包下载地址：[Releases · cloudflare/cfssl (github.com)](https://github.com/cloudflare/cfssl/releases)

二进制包没有提供arm64的版本，因为项目采用golang开发，这里按照READM的步骤在arm64下安装即可：

```
# 首先安装golang环境
# 这里以ubuntu为例
apt update
apt install golang 

# 保证拥有git环境
git

# 安装cfssl
go get github.com/cloudflare/cfssl/cmd/...

# 在 $GO_HOME/bin下将会有cfssl的相关命令，移动到系统可执行目录下
root@k8s-master:~/go/bin# ls
cfssl  cfssl-bundle  cfssl-certinfo  cfssljson  cfssl-newkey  cfssl-scan  mkbundle  multirootca

root@k8s-master:~/go/bin# mv * /usr/bin/
```
