📘 EJBCA 证书模板设置说明文档.

:blue_book: EJBCA 终端证书模板设置说明文档

本指南用于解释 EJBCA 中终端证书模板(Certificate Profile)设置项的具体含义及推荐用途,适用于 HTTPS/Web/设备/客户端等常见终端证书签发需求。


:puzzle_piece: 基本信息

配置项 描述
Certificate Profile ID 模板在数据库中的唯一标识,仅供系统内部识别
类型 可用终端实体,子CA,根CA
Available Key Algorithms 可用密钥算法,如 RSA、ECDSA、Ed25519、国密算法(如 DILITHIUM)等
Available ECDSA curves ECDSA 可选曲线,当前未启用任何曲线
可用位长度 支持的密钥位数(针对 RSA),如 2048、4096 等
签名算法 用于签发证书时的签名哈希算法,如 SHA3-256withRSA
Alternative Signature 是否启用替代签名算法,如 ECDSA, EdDSA 等
有效期 or end date of the certificate 默认有效期,如 “2y” 表示 2 年
Validity Offset 签发日期的偏移量,允许向前或向后设定起始时间
Expiration Restrictions 限制最大到期时间,用于合规控制
Profile Description 证书模板说明,用于备注用途(如“终端设备证书”)

:locked_with_key: 权限控制(Permissions)

配置项 描述 推荐设置
Allow Validity Override 允许在签发证书时覆盖默认有效期 :white_check_mark:,如需手动调整有效期时使用
Allow Expired Validity End Date 允许设置一个已过期的结束时间(用于测试或审计) :white_check_mark:(调试用)
Allow Extension Override 允许 CSR 中的扩展字段覆盖模板中预定义的扩展 :cross_mark:,若开启会破坏模板统一性,可能引入风险
Allow certificate serial number override 允许在签发时自定义证书序列号 :cross_mark:,仅特定需求下开启(如证书克隆、替换)
Allow Subject DN Override by CSR 允许 CSR 中的主题信息(如 CN/O)覆盖模板配置 :white_check_mark:,适用于自动化签发流程
Allow Subject DN Override by End Entity Information 允许通过终端实体信息(用户输入)指定 Subject 字段 :white_check_mark:,灵活性高,推荐开启
Allow Key Usage Override 允许 CSR 中设置 keyUsage 字段覆盖模板配置 :cross_mark:,开启会造成用途不一致,影响安全性
Allow Backdated Revocation 允许将吊销时间设置为历史时间,用于追溯性撤销 :white_check_mark:,部分审计/合规场景下需要
Use Certificate Storage 启用证书在数据库中存储(必须开启,除非特殊离线用途) :white_check_mark:
Store Certificate Data 存储证书完整原文数据(配合 OCSP/CRL 使用) :white_check_mark:,建议与存储功能一同开启

:white_check_mark: 建议:在生产环境中保持模板统一性,除非明确需要,否则尽量关闭 Override 类权限项,避免 CSR/End Entity 越权操作。


:scroll: X.509v3 扩展 - 基础信息

扩展项 描述 推荐设置
基本约束(Basic Constraints) 限制是否为 CA 证书(终端证书应设为 FALSE) :white_check_mark: 使用,关键
CA密钥标识符 标识签发 CA 的信息 :white_check_mark: 使用
主题密钥标识符 生成此证书的唯一标识 :white_check_mark: 使用

:locked_with_key: X.509v3 扩展 - 密钥用途(Key Usage)

项目 描述
数字签名 (digitalSignature) 用于验证签名,如身份认证、代码签名
不可抵赖 (nonRepudiation) 表明签名不可否认(法律场景)
数据加密 (dataEncipherment) 用于加密非密钥数据
密钥加密 (keyEncipherment) 用于加密密钥材料,如对称密钥
密钥协议 (keyAgreement) 支持密钥协商协议(如 DH)
CRL签名 (cRLSign) 用于签署吊销列表(CA 用)
密钥证书签名 (keyCertSign) 用于签署证书(CA 用)
只用于加密 (encipherOnly) 与密钥协议联合使用(仅加密)
只用于解密 (decipherOnly) 与密钥协议联合使用(仅解密)
Forbid encryption usage for ECC keys 禁止 ECC 密钥用于加密

:package: X.509v3 扩展 - 扩展密钥用途(Extended Key Usage)

扩展用途 描述
TLS client 用于客户端 TLS 认证
TLS server 用于服务器 TLS 认证
EAP over LAN (EAPOL) 企业网身份认证
EAP over PPP 点对点协议身份认证
ETSI TSL Signing 用于 ETSI TSL 签名场景
ICAO Deviation List Signing ICAO 签名用途之一
ICAO Master List Signing ICAO 主列表签名
Intel AMT management Intel 管理认证专用
Internet Key Exchange for IPsec IPsec 密钥交换
Kerberos Client Authentication Kerberos 客户端认证
Kerberos KDC Kerberos 密钥中心
MS CA Key Exchange Microsoft CA 密钥交换用途
MS Commercial Code Signing Microsoft 商业代码签名
MS Document Signing Microsoft 文档签名
MS EFS Recovery Microsoft EFS 恢复用途
MS Encrypted File System Microsoft 加密文件系统用途
MS Individual Code Signing Microsoft 个人代码签名
MS 智能卡登录 Microsoft 智能卡登录验证
OCSP 签发者 在线证书状态协议(OCSP)签名证书用途
PDF Signing 用于 PDF 文件签名
PIV Card Authentication PIV 卡身份认证
RFC9336 Document Signing 符合 RFC9336 的文档签名用途
SCVP Client 简化证书验证协议客户端
SCVP Server 简化证书验证协议服务端
SIP Domain 用于 VoIP/SIP 域名认证用途
SSH Client 用于 SSH 客户端认证
SSH Server 用于 SSH 服务器认证
代码签名 (codeSigning) 用于软件/驱动程序签名
任意扩展的密钥用途 任意通用用途扩展支持
安全 Email (emailProtection) S/MIME 邮件签名/加密用途
客户身份验证 (clientAuth) 用于 TLS 客户端身份认证
时间戳 (timeStamping) 时间戳服务签名用途
服务器验证 (serverAuth) 用于服务器身份验证(HTTPS 等)

:receipt: 名称扩展

项目 描述 建议
主题别名(Subject Alt Name) 支持 IP/DNS/UEmail 作为证书标识 :white_check_mark: 使用
Issuer Alternative Name 可添加额外的 CA 名称信息 可选
Name Constraints 限定主题中可用的命名空间 可选(高安全场景使用)

:satellite_antenna: 验证扩展(Validation Data)

项目 描述 推荐
CRL 发布点 证书吊销列表地址 :white_check_mark: 使用,关键
Delta CRL(Freshest CRL) 增量吊销列表 按需开启
Authority Information Access (AIA) 提供 OCSP/CA 信息 :white_check_mark:

:date: 私钥使用期限制

项目 描述
Start Offset 私钥可用的起始偏移时间
Period Length 私钥的可使用周期(独立于证书有效期)

:european_union: ETSI 合规扩展(一般用于合规性要求高的 PKI 环境)

项目 描述
资质证书声明 用于标识法律或合规用途证书
Assured validity 确保短期证书的有效性

:puzzle_piece: 其他扩展(Other Extensions)

扩展 用途
OCSP No Check 禁用 OCSP 检查(通常仅对 OCSP responder 有用)
Microsoft 模板值 用于 Windows AD 集成的特殊扩展
CA/B Forum OID 用于 CA/B 合规的组织标识扩展

:hammer_and_wrench: 审批设置 & 附加字段

配置项 说明
添加/编辑终端实体 绑定的审批流程(如 sub CA)
密钥恢复 是否支持密钥找回(如用于备份恢复)
撤销审批 吊销时是否需审批
CN 后缀 在 Subject CN 后自动添加字符串
主题字段子集限制 限制允许使用的 Subject 字段

:globe_with_meridians: CA & 发布设置

项目 说明
可用的 CA 允许哪些 CA 使用此证书模板
发布器(Publisher) 可配置发布至 LDAP、数据库或外部服务
单证书限制 是否启用一个 End Entity 只能有一张有效证书
Account Binding Namespace 用于设备账户绑定场景(如 IoT)

如需继续配置 “代码签名证书” 模板,请在此基础上调整 keyUsage 与 extendedKeyUsage 字段即可。

:pushpin: 建议对不同应用(如:VPN、HTTPS、代码签名、客户端认证)创建不同模板,便于管理和合规控制。

:package: 代码签名证书模板设置指南(EJBCA)

本章节用于配置适用于软件、固件、驱动签名的 代码签名证书(Code Signing Certificate)模板。该模板推荐在 EJBCA 中单独创建,以确保签发出的证书用途清晰、用途受限、兼容常见签名工具(如 Microsoft signtool、GPG、jarsigner 等)。


:puzzle_piece: 基础配置建议

配置项 推荐值 说明
类型 终端证书 终端证书
可用密钥算法 RSA(2048 或 4096)/ Ed25519 主流签名工具对 RSA 支持最好;部分支持 EdDSA
签名算法 SHA256withRSA / SHA3-256withRSA 建议使用 SHA256 或以上哈希算法
有效期 1y 或 2y 代码签名证书有效期建议不超过 3 年

:locked_with_key: 权限控制推荐(Permissions)

项目 建议 说明
Allow Validity Override :cross_mark: 禁止 防止用户更改有效期
Allow Extension Override :cross_mark: 禁止 保证模板一致性
Allow Subject DN Override by CSR :white_check_mark: 允许 支持自动化请求中的 DN 设定
Allow Key Usage Override :cross_mark: 禁止 限定用途为签名,不可更改
Use Certificate Storage / Store Certificate Data :white_check_mark: 开启 保证支持 CRL/OCSP 查询和日志审计

:key: Key Usage 设置(密钥用途)

启用以下选项并设置为“关键”:

  • :white_check_mark: digitalSignature
  • :white_check_mark: nonRepudiation

禁用其他所有选项。

:pushpin: nonRepudiation 用于法律上增强签名不可否认性。


:wrench: Extended Key Usage(扩展密钥用途)

仅启用以下项并标记为关键:

  • :white_check_mark: codeSigning

禁用其他项(如 serverAuth、clientAuth、emailProtection 等)以限制用途。


:scroll: Subject DN 建议字段

字段 示例值 说明
CN Huawei Software Signer 01 通常用于标识签名主体
O Huawei Technologies 公司名
C CN 国家码

:shield: 安全建议

  • 该模板不应被 CA 或管理员直接使用,应通过审批流程控制发放
  • 建议将此模板绑定至 代码签名使用者角色,并使用 RA 审批或管理员审批方式颁发
  • 对签发出的证书可启用 CRL 发布、AIA 访问、吊销审批等审计机制

:white_check_mark: 配置完成后,即可用于:

  • Windows .exe/.dll/.msi 等签名
  • Java .jar/.apk 签名
  • Linux 内核模块签名
  • Git 代码提交签名(搭配 GPG 证书)

如需进一步扩展用途(如时间戳服务器、PDF 签名),建议创建专门模板以分离风险。