cfssl 證書 certificate

CFSSL是CloudFlare開源的一款PKI/TLS工具,CFSSL包含一個命令行工具和一個用於簽名,驗證並且捆綁TLS證書的HTTP API服務,環境構建方面需要 Go 1.12+。

安裝一些實用的命令行工具,其中包括 cfssl、cfssljson。cfssljson 程序,從 cfssl 獲取 JSON 輸出,並將證書、密鑰、CSR和 bundle 寫入指定位置。

# 生成默認CA配置json配置文件
# ca-config.json:可以定義多個 profiles,分別指定不同的過期時間、使用場景等參數;後續在簽名證書時使用某個 profile
$ sudo cfssl print-defaults config > ca-config.json
$ sudo cfssl print-defaults csr > ca-csr.json
[root@ho cfssl]# cfssl print-defaults config
{
    "signing": { # 表示該證書可用於簽名其它證書;生成的 ca.pem 證書中 CA=TRUE
        "default": {
            "expiry": "168h"
        },
        "profiles": {
            "www": {
                "expiry": "8760h",
                "usages": [
                    "signing",
                    "key encipherment",
                    "server auth" # 表示client可以用該 CA 對server提供的證書進行驗證
                ]
            },
            "client": {
                "expiry": "8760h",
                "usages": [
                    "signing",
                    "key encipherment",
                    "client auth" # 表示server可以用該CA對client提供的證書進行驗證
                ]
            }
        }
    }
}

[root@ho cfssl]# cfssl print-defaults csr
{
    "CN": "example.net", # Common Name,從證書中提取該字段作爲請求的用戶名 (User Name),瀏覽器使用該字段驗證網站是否合法
    "hosts": [ # 如果 hosts 字段不爲空則需要指定授權使用該證書的 IP 或域名列表
        "example.net",
        "www.example.net"
    ],
    "key": {
        "algo": "ecdsa",
        "size": 256
    },
    "names": [
        {
            "C": "US",
            "ST": "CA",
            "L": "San Francisco",
			"O": "Client-CA", # Organization,從證書中提取該字段作爲請求用戶所屬的組 (Group)
			"OU": "System"
        }
    ]
}
# 生產CA證書和私鑰
# 根證書文件: ca.pem
# 根證書私鑰: ca-key.pem
# 根證書申請文件: ca.csr
$ cfssl gencert -initca ca-csr.json | cfssljson -bare ca
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章