一、实验概述
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.下载地址:
官网:Home
GitHub: https://github.com/chris2511/xca/
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 是实体证书对应的私钥文件。
六:总结
创建和管理数字证书项目是一个需要高度重视安全性和技术细节的复杂任务。在这个过程中,我意识到以下几点:
1. 项目目标的明确性非常重要。在开始项目之前,明确数字证书项目的目标、范围和需求是至关重要的。这有助于确保整个项目团队对项目有一个共同的理解,并能够有针对性地制定计划和设计方案。
2. 技术选型和实现阶段需要谨慎选择。根据项目需求,选择适当的数字证书解决方案和技术非常重要。需要考虑安全性、稳定性和可扩展性等方面,以确保所选解决方案能够满足项目要求。
3. 测试和调试是确保项目质量的关键步骤。在项目实施过程中进行全面的测试和调试,可以帮助发现和修复潜在的问题和漏洞。这对于确保数字证书系统的正确性和稳定性至关重要。
4. 运维和维护是项目的长期任务。数字证书系统的运行需要持续的监测和维护。这包括定期的证书备份、更新和吊销操作,以及及时修复系统漏洞和问题,以确保系统的安全性和可靠性。
总的来说,创建和管理数字证书项目需要高度专业化的知识和技能。在这个过程中,与客户和用户之间的密切合作和良好沟通是至关重要的。同时,对技术的敏感性和责任心也是成功完成项目的关键。