轩辕镜像
轩辕镜像专业版
个人中心搜索镜像
交易
充值流量我的订单
工具
工单支持镜像收录Run 助手IP 归属地密码生成Npm 源Pip 源
帮助
常见问题我要吐槽
其他
关于我们网站地图

官方QQ群: 13763429

轩辕镜像
镜像详情
cfssl/cfssl
官方博客使用教程热门镜像工单支持
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。
所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。
轩辕镜像 - 国内开发者首选的专业 Docker 镜像下载加速服务平台 - 官方QQ群:13763429 👈点击免费获得技术支持。
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。

本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

cfssl Docker 镜像下载 - 轩辕镜像

cfssl 镜像详细信息和使用指南

cfssl 镜像标签列表和版本信息

cfssl 镜像拉取命令和加速下载

cfssl 镜像使用说明和配置指南

Docker 镜像加速服务 - 轩辕镜像平台

国内开发者首选的 Docker 镜像加速平台

极速拉取 Docker 镜像服务

相关 Docker 镜像推荐

热门 Docker 镜像下载

cfssl
cfssl/cfssl
自动构建

cfssl 镜像详细信息

cfssl 镜像标签列表

cfssl 镜像使用说明

cfssl 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

CloudFlare的PKI工具包,用于公钥基础设施相关的证书生成、验证与管理操作。
26 收藏0 次下载activecfssl镜像
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源
中文简介版本下载
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源

cfssl 镜像详细说明

cfssl 使用指南

cfssl 配置说明

cfssl 官方文档

CFSSL

镜像概述和主要用途

CFSSL是CloudFlare的PKI/TLS瑞士军刀,既是命令行工具,也是用于签名、验证和捆绑TLS证书的HTTP API服务器。它需要Go 1.12+环境来构建。

注意:某些Linux发行版(特别是基于RHEL的发行版)移除了某些算法,因此官方仓库中的Golang可能无法正常工作。这些发行版的用户应手动安装Go以使用CFSSL。

核心功能和特性

CFSSL由以下组件构成:

  • 一组用于构建自定义TLS PKI工具的包
  • cfssl程序:使用CFSSL包的标准命令行工具
  • multirootca程序:可以使用多个签名密钥的证书颁发机构服务器
  • mkbundle程序:用于构建证书池捆绑包
  • cfssljson程序:处理cfssl和multirootca程序的JSON输出,并将证书、密钥、CSR和捆绑包写入磁盘

使用场景和适用范围

CFSSL适用于以下场景:

  • 企业内部PKI基础设施搭建
  • TLS证书的创建、签名和管理
  • 证书颁发机构(CA)服务器部署
  • 自动化证书生命周期管理
  • OCSP响应生成和OCSP服务器部署
  • 证书捆绑和验证

详细使用方法和配置说明

Docker部署

Docker Run 示例

# 拉取CFSSL镜像
docker pull cloudflare/cfssl

# 基本命令行使用
docker run --rm -v $(pwd):/work cloudflare/cfssl cfssl version

# 生成自签名根CA证书和私钥
docker run --rm -v $(pwd):/work cloudflare/cfssl cfssl genkey -initca csr.json | docker run --rm -i -v $(pwd):/work cloudflare/cfssl cfssljson -bare ca

# 启动CFSSL API服务器
docker run -d -p 8888:8888 -v $(pwd):/work --name cfssl-server cloudflare/cfssl cfssl serve -address 0.0.0.0 -ca ca.pem -ca-key ca-key.pem

Docker Compose 配置示例

version: '3'

services:
  cfssl:
    image: cloudflare/cfssl
    container_name: cfssl-server
    ports:
      - "8888:8888"
    volumes:
      - ./ca:/work
    command: cfssl serve -address 0.0.0.0 -ca /work/ca.pem -ca-key /work/ca-key.pem -loglevel 1
    restart: unless-stopped

命令行工具使用

cfssl命令行工具接受以下命令来指定要执行的操作:

  • sign:签名证书
  • bundle:构建证书捆绑包
  • genkey:生成私钥和证书请求
  • gencert:生成私钥和证书
  • serve:启动API服务器
  • version:打印当前版本
  • selfsign:生成自签名证书
  • print-defaults:打印默认配置

使用cfssl [command] -help了解有关命令的更多信息。version命令不带参数。

签名

cfssl sign [-ca cert] [-ca-key key] [-hostname comma,separated,hostnames] csr [subject]

csr是客户端的证书请求。-ca和-ca-key标志分别是CA的证书和私钥。默认情况下,它们是ca.pem和ca_key.pem。-hostname是逗号分隔的主机名列表,覆盖证书SAN扩展中的DNS名称和IP地址。

例如,假设CA的私钥在/etc/ssl/private/cfssl_key.pem中,CA的证书在/etc/ssl/certs/cfssl.pem中,为cloudflare.com签名cloudflare.pem证书:

cfssl sign -ca     /etc/ssl/certs/cfssl.pem       \
           -ca-key /etc/ssl/private/cfssl_key.pem \
           -hostname cloudflare.com               \
           ./cloudflare.pem

也可以使用-csr标志指定CSR。通过这种方式,标志值优先,并将覆盖参数。

主题是一个可选文件,包含应替换CSR中信息的主题信息。它应该是如下的JSON文件:

{
    "CN": "example.com",
    "names": [
        {
            "C":  "US",
            "L":  "San Francisco",
            "O":  "Internet Widgets, Inc.",
            "OU": "WWW",
            "ST": "California"
        }
    ]
}

注意:从Go 1.7开始,自签名证书将不包含AKI。

捆绑

cfssl bundle [-ca-bundle bundle] [-int-bundle bundle] \
             [-metadata metadata_file] [-flavor bundle_flavor] \
             -cert certificate_file [-key key_file]

捆绑包用于根证书池和中间证书池。此外,平台元数据通过-metadata指定。捆绑包文件、元数据文件(和辅助文件)可在以下位置找到:

[***]

通过-cert和-key分别指定PEM编码的客户端证书和密钥。如果指定了密钥,将构建捆绑包并使用密钥进行验证。否则,将构建没有私钥的捆绑包。使用-代替文件路径,从stdin读取证书PEM。证书文件应包含(部分)证书捆绑包也是可以接受的。

通过-flavor指定捆绑风格。有三种风格:optimal生成最短链和最高级加密算法的捆绑包,ubiquitous生成在不同浏览器和OS平台上最广泛接受的捆绑包,force找到与输入证书文件内容相同的可接受捆绑包。

或者,可以直接从域中拉取客户端证书。也可以通过-ip连接到远程地址。

cfssl bundle [-ca-bundle bundle] [-int-bundle bundle] \
             [-metadata metadata_file] [-flavor bundle_flavor] \
             -domain domain_name [-ip ip_address]

捆绑输出格式应如下例所示:

{
    "bundle": "CERT_BUNDLE_IN_PEM",
    "crt": "LEAF_CERT_IN_PEM",
    "crl_support": true,
    "expires": "2015-12-31T23:59:59Z",
    "hostnames": ["example.com"],
    "issuer": "ISSUER CERT SUBJECT",
    "key": "KEY_IN_PEM",
    "key_size": 2048,
    "key_type": "2048-bit RSA",
    "ocsp": ["[***]"],
    "ocsp_support": true,
    "root": "ROOT_CA_CERT_IN_PEM",
    "signature": "SHA1WithRSA",
    "subject": "LEAF CERT SUBJECT",
    "status": {
        "rebundled": false,
        "expiring_SKIs": [],
        "untrusted_root_stores": [],
        "messages": [],
        "code": 0
    }
}

生成证书签名请求和私钥

cfssl genkey csr.json

要生成私钥和相应的证书请求,请将密钥请求指定为JSON文件。此文件应遵循以下格式:

{
    "hosts": [
        "example.com",
        "[***]",
        "[***]",
        "***",
        "127.0.0.1"
    ],
    "key": {
        "algo": "rsa",
        "size": 2048
    },
    "names": [
        {
            "C":  "US",
            "L":  "San Francisco",
            "O":  "Internet Widgets, Inc.",
            "OU": "WWW",
            "ST": "California"
        }
    ]
}

生成自签名根CA证书和私钥

cfssl genkey -initca csr.json | cfssljson -bare ca

要生成自签名根CA证书,请将密钥请求指定为与'genkey'中相同格式的JSON文件。输出中将出现三个PEM编码的实体:私钥、csr和自签名证书。

生成远程颁发的证书和私钥

cfssl gencert -remote=remote_server [-hostname=comma,separated,hostnames] csr.json

这将调用genkey,但让远程CFSSL服务器签名并颁发证书。您可以使用-hostname覆盖证书SAN。

生成本地颁发的证书和私钥

cfssl gencert -ca cert -ca-key key [-hostname=comma,separated,hostnames] csr.json

这通过JSON请求从本地CA生成并颁发证书和私钥。您可以使用-hostname覆盖证书SAN。

使用新颁发的证书更新OCSP响应文件

cfssl ocspsign -ca cert -responder key -responder-key key -cert cert \
 | cfssljson -bare -stdout >> responses

这将为cert生成OCSP响应,并将其添加到responses文件中。然后,您可以将responses传递给ocspserve以启动OCSP服务器。

启动API服务器

CFSSL附带基于HTTP的API服务器;端点记录在doc/api/intro.txt中。服务器通过serve命令启动:

cfssl serve [-address address] [-ca cert] [-ca-bundle bundle] \
            [-ca-key key] [-int-bundle bundle] [-int-dir dir] [-port port] \
            [-metadata file] [-remote remote_host] [-config config] \
            [-responder cert] [-responder-key key] [-db-config db-config]

地址和端口默认为"127.0.0.1:8888"。-ca和-ca-key参数应该是用于签名的PEM编码证书和私钥;默认情况下,它们是ca.pem和ca_key.pem。-ca-bundle和-int-bundle应该分别是用于根证书池和中间证书池的证书捆绑包。它们分别默认为ca-bundle.crt和int-bundle.crt。如果指定了-remote选项,所有签名操作将转发到远程CFSSL。

-int-dir指定中间目录。-metadata是根证书存在性的文件。文件内容是json字典(k,v),其中每个键k是根证书的SHA-1摘要,而值v是密钥存储文件名列表。-config指定配置文件的路径。-responder和-responder-key分别是OCSP响应器的证书和私钥。

日志量可以通过-loglevel选项控制。此选项在serve命令之后:

cfssl serve -loglevel 2

级别如下:

  • 0 - DEBUG
  • 1 - INFO(这是默认级别)
  • 2 - WARNING
  • 3 - ERROR
  • 4 - CRITICAL

multirootca

cfssl程序可以充当在线证书颁发机构,但它只使用单个密钥。如果需要多个签名密钥,可以使用multirootca程序。它只提供sign、authsign和info端点。文档包含配置和运行CA的说明。

mkbundle工具

mkbundle用于构建用于验证证书的根和中间捆绑包。可以使用以下命令安装:

go get -u github.com/cloudflare/cfssl/cmd/mkbundle

它接受一组证书,检查CRL吊销(OCSP支持计划在下一版本中推出)和过期证书,并将它们捆绑到一个文件中。它接受证书目录和证书文件(可能包含多个证书)。例如,如果目录intermediates包含多个中间证书:

mkbundle -f int-bundle.crt intermediates

将检查这些证书并将有效证书组合到单个int-bundle.crt文件中。

-f标志指定输出名称;-loglevel指定日志的详细程度(使用与上述相同的日志级别),-nw控制吊销检查工作线程的数量。

cfssljson工具

cfssl的大部分输出都是JSON格式。cfssljson工具可以获取此输出,并将其拆分为单独的key、certificate、CSR和bundle文件(视情况而定)。该工具接受一个标志-f,指定输入文件,以及一个参数,指定生成文件的基本名称。如果输入文件名是-(默认值),cfssljson从标准输入读取。它以以下方式将JSON文件中的键映射到文件名:

  • 如果指定了__cert__或__certificate__,将生成__basename.pem__
  • 如果指定了__key__或__private_key__,将生成__basename-key.pem__
  • 如果指定了__csr__或__certificate_request__,将生成__basename.csr__
  • 如果指定了__bundle__,将生成__basename-bundle.pem__
  • 如果指定了__ocspResponse__,将生成__basename-response.der__

您可以传递-stdout而不是保存到文件,将编码内容输出到标准输出。

静态构建

默认情况下,Web资产根据其相对位置从磁盘访问。如果您希望分发单个静态链接的cfssl二进制文件,您需要在构建之前嵌入这些资源。这可以通过go.rice工具完成。

pushd cli/serve && rice embed-go && popd

然后使用go build构建将使用嵌入的资源。

附加文档

附加文档可在"doc"目录中找到:

  • api/intro.txt:记录API端点
查看更多 cfssl 相关镜像 →

常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。

轩辕镜像免费版与专业版有分别支持哪些镜像?

免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。

流量耗尽错误提示

当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

轩辕镜像下载加速使用手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

🔐

登录方式进行 Docker 镜像下载加速教程

通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤

🐧

Linux Docker 镜像下载加速教程

在 Linux 系统上配置轩辕镜像源,支持主流发行版

🖥️

Windows/Mac Docker 镜像下载加速教程

在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统

📦

Docker Compose 镜像下载加速教程

在 Docker Compose 中使用轩辕镜像加速,支持容器编排

📋

K8s containerd 镜像下载加速教程

在 k8s 中配置 containerd 使用轩辕镜像加速

🔧

宝塔面板 Docker 镜像下载加速教程

在宝塔面板中配置轩辕镜像加速,提升服务器管理效率

💾

群晖 NAS Docker 镜像下载加速教程

在 Synology 群晖NAS系统中配置轩辕镜像加速

🐂

飞牛fnOS Docker 镜像下载加速教程

在飞牛fnOS系统中配置轩辕镜像加速

📱

极空间 NAS Docker 镜像下载加速教程

在极空间NAS中配置轩辕镜像加速

⚡

爱快路由 ikuai Docker 镜像下载加速教程

在爱快ikuai系统中配置轩辕镜像加速

🔗

绿联 NAS Docker 镜像下载加速教程

在绿联NAS系统中配置轩辕镜像加速

🌐

威联通 NAS Docker 镜像下载加速教程

在威联通NAS系统中配置轩辕镜像加速

📦

Podman Docker 镜像下载加速教程

在 Podman 中配置轩辕镜像加速,支持多系统

📚

ghcr、Quay、nvcr、k8s、gcr 等仓库下载镜像加速教程

配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤

🚀

专属域名方式进行 Docker 镜像下载加速教程

无需登录即可使用轩辕镜像加速服务,更加便捷高效

需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429

商务:17300950906
|©2024-2025 源码跳动
商务合作电话:17300950906|Copyright © 2024-2025 杭州源码跳动科技有限公司. All rights reserved.