使用OpenXPKI Live CD来体验PKI体系

PKI体系更多的是一个概念模型,初学者在理解了概念后,如果想实际操作一下,往往失去了头绪。一来各种商业实现的版本令人眼花缭乱,二来要搭建一个PKI系统需要安装不少东西,比如OpenSSL、密钥管理、LDAP、工作流等等。这些困难实在是让新手无从下手。

其实,抛开众多的商业PKI解决方案,在开源社区,已经有人开始致力于统一PKI实现了。从1999年开始,一个名为OpenCA的项目就开始了开发,这个框架集合了所有开源的安全产品,提供一个”比较”简洁的安装方式,然而这个简洁只是比较而言的,由于它的框架太过通用(比如证书不一定考虑X509格式),致使其安装还是不能非常方便。不过这个项目目前正在开发NG(Next Generation)版本,只是还没有发布版本。

后来,从OpenCA项目分离出了一个项目,叫做OpenXPKI,这个项目在OpenCA的基础上,更加缩小了范围,旨在提供基于X.509证书的企业级PKI开源解决方案。我们可以从 www.openxpki.org 这个主页上了解到它的信息。不过,这个项目目前也还没有稳定版发布,仍然处于开发阶段。但是,它提供了一个Live CD的发布,我们可以在它的下载页面里找到这个Live CD的iso文件下载(目前是600多兆)。这个Live CD实用了光盘版本的Linux发布制作而成,极大地方便了我们使用和安装(你可以想想Ubuntu Linux的发布和安装,那个也是Live CD方式)。

 

好,那么对于希望对PKI体系有个感性认识的人来说,用OpenXPKI那简直是最简单不过了。实际上,你根本不需要安装任何软件,你所需要的仅仅是两样东西:

  1. 一个VMware Workstation虚拟机软件;
  2. 一个OpenXPKI Live CD的iso文件;

好,下面我们简要来看看如何使用这个Live CD。首先,创建一个新的虚拟机,你可以不在这个新的虚拟机上安装任何操作系统。由于OpenXPKI Live CD是建立在Debian的基础上的,所以在选择新虚拟机的类别时选Debian或者Ubuntu都可以,内存给个512M吧。然后把光驱设置成ISO,并导入下载的Live CD的ISO。

启动虚拟机,系统会自动从光盘加载操作系统,并设置一些OpenXPKI的初始环境(比如产生一个CA的证书等):

一段时间后,系统初始化完毕,进入一个图形界面,并自动打开一个Firefox浏览器,进入一个页面,上面有简单的使用说明:

好,开始体验PKI了,直接点击”webinterface”这个连接,进入用户登录页面:

这里,由于OpenXPKI是框架型软件,所以它提供可供扩展的用户登录方式,这里我们选择”External Dynamic”方式,这个方式是专门用来给我们测试的,在这个登陆方式中,用户名可以任意,而登陆后的用户角色则根据密码来确定。分别有

  • User
  • CA Operator
  • RA Operator

这几个角色。

好,我们首先用”caop”,密码”CA Operator”来登陆,注意,用户名无关紧要,关键是密码,这个决定了你的角色:

好,我们进入了CA操作员的页面,可以看到,我们的上面有几大类操作可做:

  • Tasks – 这里列出了属于你这个角色所需要做的一些操作;
  • Request – 这里可以用来申请证书;
  • Download – 这里提供对证书的下载
  • Approval – 这里是需要你审核批准的证书申请列表;
  • Search – 这里可以搜索保存的证书(对应于证书管理啦)

在我们这个CA Operator的任务列表里,可以看到有一个CA证书处于Incomplete状态,这个就是我们开机时系统生成的用于CA的证书,但我们必须手动来启用它。好我们点击”Login”来启用吧:

要启用这个CA证书,我们必须输入用于打开这个证书私钥的保护密码,这里我们使用第一栏填”1″,第二栏填”1234567890″,这个是系统生成这个测试秘钥时的密码,然后点击OK,新的CA证书就生成了。作为正式系统,操作员要绝对保证这个证书的私钥的安全:

点击OK后,CA证书就初始化完成,可以看到其状态为Ready了。

接下来,CA操作员的任务就完成了,我们可以点击上面的Logout,注意你如果点击CA证书的Logout,系统会问你是否清楚该秘钥的保护密码,点OK就可以了。这样,系统就要求我们重新登陆,想想,应该用一个普通用户登录,然后申请证书了吧,所以我们用用户名”user”,密码”User”,没忘吧,这个密码说明我们要以User的身份来登陆:

进入用户组的界面后,我们进入”Request”页面,并点击”Certificate Signing Request (CSR)”子页面,这里我们要进行秘钥的产生和证书申请的产生,类型选择”User”:

接下来要选择输入用户证书内容的模式,我们选最简单的Basic user naming style即可:

接下来,要选择如何产生秘钥了,系统提供了四个选项(当然,由于这个软件是框架型软件,这个产生秘钥的方式是可以扩展的),这里大致介绍下:

  • Microsoft Internet Explorer – 当你用IE浏览时可以选这个,选了这个,网页就会要求IE来产生一个秘钥;
  • SPKAC – 这个是Netscape的密钥产生协议,同理,如果你是用Firefox在浏览,选这个,网页就会要求Firefox用SPKAC来产生一对秘钥;(我们的Live CD使用的是Firefox,所以我们理所当然的要选这个啦);
  • Serverside key generation – 这个是要求服务器来产生这个密钥,当然啦,后台肯定是用OpenSSL来生成的,呵呵;
  • PKCS#10 – 这个不是要你现在产生秘钥,而是你已经产生好了PKCS#10格式的秘钥,直接提交好了;

嗯,我们选SPKAC吧:

接下来,开始输入用户数据了,由于我们选择的是简要输入模板,所以只需要输入3个内容即可:(后面的email是我的,有问题可以给我发邮件哦:)

一通设置后,Firxfox弹出密码生成对话框,要求我们给这个新生成的密钥设置一个保护密码(也就是对公私钥的对称加密):

几秒钟后,秘钥生成完毕,证书申请也制作好,并传到服务器上了。

接下来我们用RA管理员登录,密码为”RA Operator”:

一登进去,刚才的证书申请就放在那了,呵呵:

点击进入这个申请,按”Approve CSR”来确认吧,不过真实世界中,这个流程可是千差万别哦,可以是用email确认,也可能要到柜台,拿着个身份证的复印件哦,呵呵。

证书生成好,我们就退出本次RA Operator的登录,再次用User登录:

呵呵,一进去,俺们的新证书就在那了:

直接点击”download certificate”吧,下面提供了五种下载模式:

其中,Firefox和IE两项可以自动安装证书到浏览器里,这里由于我们是Firefox,就点它吧:

然后我们进入Firefox的配置选项对话框,选择”Advanced”->”Encryption”,不错,咱们的证书已经列在那了,可以正常使用了:

其他还提供了PEM, DER和TXT这三种下载方式,都是文本文件或者普通文件:

OK,一次简单的PKI之旅就结束了,是不是对PKI有了感性的认识呢?不过这个OpenXPKI还处于开发阶段,没有稳定版本发布,涉及的文档也非常缺乏,要深入研究就只能靠有限的几篇设计文档和源代码阅读了,好在其设计非常模块化,并且运用了Perl的CPAN系统(一个类似debian的apt软件包系统),所以应该是一个很有前途的软件吧。

你可能感兴趣的:(open)