云南大学软件学院PKI体系与CA技术实验2
- 格式:docx
- 大小:686.07 KB
- 文档页数:9
云南大学软件学院实验报告
课程:PKI体系与CA技术学期:2015-2016学年第二学期任课教师:刘璟
专业:信息安全学号219 姓名:刘宁宁成绩:
实验2 使用OpenSSL创建自己的签证中心
实验时间:实验地点:软件大楼1428 ;
注意:
实验报告统一命名为:学号姓名实验1.docx,例如:学号为203的张三同学提交的实验报告应该命名为:203张三实验1.docx
一、实验目的
1. 学会开源软件OpenSSL的编译和安装,从而掌握一般开源软件的编译和安装方法(指Unix系统下的开源软件的编译和安装方法)。
2. 使用OpenSSL创建自己的签证(CA)中心。
3. 学会使用OpenSSL来管理数字证书的整个生命周期。
4. 熟悉OpenSSL,为以后在OpenSSL基础上做进一步的编程开发工作打下基础。
二、实验内容
1. 在Windows环境下编译和安装开源软件OpenSSL,掌握围绕makefile文件的软件编译和安装方
法。
2. 应用OpenSSL来创建自己的签证(CA)中心:
1)为签证中心创建工作环境;
2)研究OpenSSL配置文件,并创建一个自己的OpenSSL配置文件;
3)生成CA自签名的根证书,并了解CA自签名根证书的作用。
4)为用户签发(颁发)数字证书;
5)吊销已签发的数字证书。
三、详细实验步骤(关键步骤请截屏)
1.openssl的安装:
Perl安装完成:
为Visual Studio 2010(Visual C++)设置临时环境变量:
执行如下Configure命令(该步骤的目的是配置编译参数,对编译环境进行基本的配置):
perl Configure VC-WIN32
至此,openssl的配置完成。
2.使用openssl创建自己的签证中心建立CA目录:
创建OpenSSL配置文件:
修改req项里面的内容:
运行命令:C:\CARoot>openssl req -x509 -newkey rsa -out private\cacert.pem -outform PEM
在命令行输入C:\CARoot> openssl ca -in testreq.pem
生成了一个名为“01.pem”的数字证书
4、吊销已经签发的数字证书:
如下命令:C:\CARoot>openssl ca -revoke newcerts\01.pem
生成一个证书吊销列表exampleca.crl:C:\CARoot>openssl ca -gencrl -out exampleca.crl
输入命令:C:\CARoot>openssl crl -in exampleca.crl -text -noout
成功吊销证书,显示verify OK:
四、实验总结
通过回答以下几个问题来进行总结:
1.实验一种我们从沃通官网下载的数字证书格式为PFX,在本实验中我们使用OpenSSL生成的数字证书格式为PEM,试比较两种证书格式的异同?
答:该编码格式在RFC1421中定义,其实PEM是Privacy-Enhanced Mail的简写,但他也同样广泛运用于密钥管理,一般基于base 64编码。
2.OpenSSL包含了哪三大部分?每部分分别实现了哪些功能?
OpenSSL事实上包括了三部分:SSL协议、密码算法库和应用程序库。
SSL协议部分完全实现和封装了SSL协议的三个版本和TLS协议,SSL协议库的实现是在密码算法库的基础上实现的。使用该库,你完全可以建立一个SSL服务器和SSL客户端。
密码算法库是一个强大完整的密码算法库,它是OpenSSL的基础部分,也是很值得一般密码安全技术人员研究的部分,它实现了目前大部分主流的密码算法和标准。主要包括公开密钥算法、对称加密算法、散列函数算法、X509数字证书标准、PKCS12、PKCS7等标准。事实上,OpenSSL的SSL 协议部分和应用程序部分都是基于这个库开发的。
应用程序部分是OpenSSL最生动的部分,也是OpenSSL使用入门部分。该部分基于上述的密码算法库和SSL协议库实现了很多实用和范例性的应用程序,覆盖了众多的密码学应用。主要包括了各种算法的加密程序和各种类型密钥的产生程序(如RSA、Md5、Enc等等)、证书签发和验证程序(如Ca、X509、Crl等)、SSL连接测试程序(如S_client和S_server等)以及其它的标准应用程序(如Pkcs12和Smime等)。在某些时候,不需要做二次开发,仅仅使用这些应用程序便能得到我们的应用要求,比如采用Ca程序就能基本上实现一个小型的CA功能。
2.试分析OpenSSL的index.txt和serial两个文件的功能?
index.txt:在CARoot目录下创建一个名为index.txt的文本文件,用于保存一个数据库,该数据库用于跟踪CA发布的所有数字证书;
Serial:每一个数字证书在它产生时都被赋于了一个唯一的序列号(serial number),用这个文件来记录当前的证书序列号。
3.运用OpenSSL创建签证中心并完成基本的证书管理过程需要使用到哪些基本命令?并简介每个基本命令的作用?
-help :你可以用这个命令来了解更多的OpenSSL指令,并且当忘记哪一个指令用法时可以方便的查找;
-out :输出文件路径;
-text :可以使用此命令来查看目标的内容;
rand :随机数命令。这里将随机数文件输出到private目录下
生成证书签发申请过程中:
-req :产生证书签发申请命令;
-new :表示新请求;
-key :密钥,这里为private/;
-out :输出路径,这里为private/ca.csr文件;
-subj :指定用户信息;