目录
一、实验概述
1.主要环节
(1).了解XCA软件的基本功能
(2).通过XCA创建根证书
(3).通过XCA创建证书模板
(4).创建实体证书
2.理论介绍
数字证书是网络通信中标志通信实体身份信息的一系列数据,其作用类似于现实生活中的身份证。身份证中包含人的姓名等描述信息,数字证书中也包含了通信实体的基本描述信息:身份证中包含身份证号,用来标识每一个人,数字证书中包含通信实体的公钥。身份证中包含国家公共安全机关的签章,所以具有权威性,数字证书中包含可信任的签发机构的数字签名,这个签发机构称为CA(CertificateAuthority,证书颁发机构)。
X.509证书是广泛应用的一种数字证书,是国际电信联盟电信标准化部门(ITU-T)和国际标准化组织(SO)的数字证书标准。X.509证书支持身份的鉴别与识别、完整性、保密性及不可否认性等安全服务。
X.509证书主要有两种类型:最终实体证书和CA证书。
(1)最终实体证书是认证机构颁发给最终实体的一种证书,该实体不能再给其他的实体颁发证书。
(2)CA证书也是认证机构颁发给实体的,但该实体可以是认证机构,它可以继续颁发最终实体证书和其他类型证书。
PKCS12证书:PKCS12将X509证书及其相关的非对称密钥对通过加密封装在一起。这使得用户可以通过PKCS12证书获取自己的非对称密钥对和X509证书。许多应用都使用PKCS12标准作为用户私钥和X509证书的封装形式。因此有时将封装了用户非对称密钥对和X.509证书的PKCS12文件称为“私钥证书”而将X509证书称为“公钥证书”
数字证书的工作过程:
如果用户B希望得到用户A的正确公钥,则验证过程如下(前提条件是rootCA是可信的):
(1)用户B获得用户A的数字证书。
(2)如果用户B信任CA2,则使用CA2的公钥验证CA2的签名,从而验证用户A的数字证书;如果用户B不信任CA2,则进入下一步。
(3)用户B使用rootCA的公钥验证CA2的证书,从而判断CA2是否可信。
二、安装、运行XCA软件
1.下载地址:
官网:https://hohnstaedt.de/xca
GitHub: https://github.com/chris2511/xca/
本次课使用的是xca-2.4.0
2.双击xca-2.4.0.msi
3.点击“next”
4.选择“typical”,后安装
5.安装完成并启动xca
6.创建数据库。在XCA的“文件”菜单中选择“新建数据库”命令,在弹出的对话框中将数据库命名为“testXCA”,如图所示,单击“保存”按钮,将弹出对话框,设置数据库保护口令后单击“OK”按钮。
7.设置选项。在“文件”菜单中单击“选项”命令,打开如图所示的选项设置对话框。可以对“默认哈希算法”进行设置,这里设置为“SHA256”并将“String types”(字符串类型)设置为UTF8。设置好以后,单击“OK”按钮,保存设置。
三、创建CA根证书
1.创建新证书。在 XCA 软件中单击“创建证书”按钮,打开“Create x509 Certificate”(创建X509证书)对话框。
2.设置根证书“源”。如图7-13 所示,在“签名”部分,选中“创建自签名证书l”单选按钮,将“签名算法”设置为“SHA 256”;在“使用模版创建新证书”部分,选中“[default]CA”;单击“应用模板所有信息”按钮。
3.设置根证书“主题”。选择“主体”选项卡,可以配置证书的“内部名称”和“识别名称”,如图所示,设置如下:
(1)“内部名称”为“testCA”
(2)“country Name”为“CN”
(3)“stateOrProvinceName”(省份或州的名称)为“Guangxi”
(4)“localityName”(地理区域或城市名称)为“Liuzhou”
(5)“organizationName”(组织机构名称)为“lz”
(6)“organizationalUnitName”(组织机构的部门名称)为“net”
(7)“commonName”可以自定义,如abc
(8)“emailAddress”可以自定义,如abc@163.com
之后单击“生成新密钥”,打开如图所示的创建密钥对界面。其中“内部名称”是密钥对的名称,“密钥类型”是创建密钥对所使用的公钥加密算法。单击“创建”按钮创建密钥对。
4.设置证书“扩展项”。选择“扩展”选项卡,将证书的类型设置“CA(Certification Authority)”,将有效期设置为当前时间启用,有效期 10年,然后单击“应用”按钮。
5.设置密钥用途。选择“密钥用法”选项卡,选择“CertificateSign”(证书签名)和“CRLSign”(证书吊销列表签名),之后点击“ok”。
6.点击选中刚刚创建的证书,再点击“导出”。弹出“证书导出”对话框,选择“PEM(*.crt)”,将导出只包含公钥的X.509证书,然后单击“OK”按钮,导出根证书。
四、创见证书模板
默认情况下,XCA 软件中有以下3个模板:
(1)CA:用于创建CA根证书。
(2)HTTPS_server:用于创建基于SSL协议的安全Web 服务器端证书。
(3)HTTPS_client:用于创建访问基于SSL协议的安全Web 服务器的客户端证书。
现在要为工业网络中的防火墙设备创建证书,所以需要创建对应的证书新模板。
1.创建新模板。在XCA软件中打开“模板”选项页,单击“创建模板”,在弹出的对话框中选择“空模板”,单击“OK”按钮.
2.设置模板的“主题”。选择“主体”选项卡,将“Internal name”和commonName”设置为“<mGuard template>”,其他设置同根证书.
3.设置模板的“扩展项”。选择“扩展”选项卡,在“类型”处选择“最终实体”,在“时间跨度”下选择“10年”,然后单击“应用”按钮.
4.设置模板的“用途”。选择“密钥用途”选项卡下的“Digital Signature”“Data Encipherment”“Key Agreement”,然后点击“OK”按钮。
五、创建实体证书
为本地设备防火墙mGuardLocal创建证书,该证书基于<mGuard template>模板,由根证书testCA进行数字签名。
1.设置实体证书的“源”。打开“证书”选项页,单击“创建证书”按钮,在打开的创建X.509数宇证书对话框中选择“来源”选项页,在“选择此CA证书进行签名”处选择“testCA”,在“使用模板创建新证书”处选择“<mGuardtemplate>”。
2.设置实体证书的“主题”。如图所示,将“内部名称” 和 “commonName”设置为“mGuardLocal”,单击“生成新密钥”按钮,创建该实体证书的密钥。单击“Create”按钮,在弹出的确认成功创建密对话框中单击“OK”按钮。
3.转到“扩展”,检查信息,主要关注一下时间,让它早于模板日期。
4.完成创建。
5.导出私钥。选择刚刚创建的实体证书,单击“Export”,弹出对话框。在该对话框中选择私钥文件保存位置,设置“导出格式”为“PKCS#12 chain(*.pfx)”,单击“OK”按钮。在弹出的对话意中设置好私钥保护口令以后单击“OK”按钮,完成私钥文件的导出。
6.导出公钥。重复步骤5,设置“导出格式”为“PEM(*.crt)”,单击“OK”按钮。完成公钥文件的导出。
如图所示,testCA.crt 是根证书(CA证书)对应的公文件,mGuardLocal.crt是实体证书对应的公钥文件,mGuardLocal.pfx 是实体证书对应的私钥文件。