先科普几个概念:
基本约束: 指定实体是否可用作 CA,如果可以,则指定在证书链中该 CA 下可以存在的从属 CA 的数量。
CRL:分发点 包含基本证书吊销列表 (CRL) 的 URI。
策略约束:通过禁止策略映射或通过要求层次结构中的每个证书包含一个可接受的策略标识符来约束路径验证。 扩展仅在 CA 证书中使用。
最终实体:也称为用户证书,是指数字证书中不能使用其对应的私钥签发其他证书的实体。与CA证书不同,最终实体证书的主体不能签发其他证书。最终实体可以是各种类型的实体,如自然人、组织机构、设备、Web服务器等。
CA:证书授权,证书颁发机构,根证书等
证书签名请求(CSR):证书签名请求(CSR)是一种用于申请数字证书的请求文件。它包含了申请者的公钥和一些身份信息,如组织名称、地理位置等。在申请SSL/TLS证书时,申请者需要创建一个CSR并将其提交给证书颁发机构(CA)。CA会对CSR进行审核,如果审核通过,CA会使用其自己的私钥对申请者的公钥进行签名,从而生成一个数字证书。
私钥:见RSA非对称加密基础概念
公钥:见RSA非对称加密基础概念
自签名证书基本颁发流程:
- 自签名CA根证书,设定证书策略约束和基本约束,这两项用于指定证书用于什么用途
- 使用根证书颁发最终实体(例如Web SSL)证书或者二级根证书(需要上层CA允许)
证书主体基本字段:
CN=通用名,颁发最终实体证书时(web),此字段应为被颁发的域名字符串
C=countryName,国家代码
ST=stateOrProvinceName,省份名称
L=localityName,城市名称
O=organizationName,组织名称
OU=organizationalUnitName,组织内机构名
emailAddress=emailAddress,邮件地址
基本用法:
创建数据库:
使用Ctrl+N或者使用文件->新建数据库
自行设定一个保存位置,如果此数据库文件丢失或者遗忘密码,你将无法找回自签名的证书
第二次打开软件选择打开数据库:
输入你设定的密码即可打开
使用xca颁发代码签名证书:
创建模板:
设置基本主体信息:
设置密钥用法:
设置吊销列表(可选):
拓展->类型选择CA
内部名称填你能记住的而且具有标识性的名称,用于内部标识
保存模板
证书->创建新证书
模板选择刚刚建好的模板->应用模板所有信息
签名选择自签名证书
拓展->时间跨度->勾选未明确到期日期 点击应用
最后点击Ok 根证书创建成功
右击根证书,创建->高级->编辑->填入以下内容
extendedKeyUsage=codeSigning
keyUsage=digitalSignature, keyCertSign
basicConstraints=CA:FALSE,pathlen:0
->验证
清空此字段
其余主体信息和内部名称根据自身需求自设
点击Ok即可生成证书
导出pfx证书
使用三方工具即可完成程序签名