“自制CA”的开发告一段落

分类: PKI, 代码人生 | 351 次点击 | 发表评论
作者: Apex 发表于

因为种种原因,需要在公司的外网服务器上架构一个CA(证书认证中心)服务,于是乎,开始找免费开源的CA系统。找来找去,找到两个用得比较广泛的开源CA,一个是OpenCA,一个是EJBCA。前者是使用Perl开发的,后者,顾名思义,是Java开发的。

服务器是FreeBSD 7.0,先上的是OpenCA,是因为不想在服务器上装太多的东西,Perl是必装的,所以第一选择就是基于Perl的OpenCA了。使用FreeBSD的Ports方式安装,结果装的过程中发现有太多依赖的库,虽然这些依赖的库都会自动下载并安装,但是心里已经感觉不爽了。接下来的配置让人头疼不已,花了三天时间也没有搞定。

一怒之下,决定把OpenCA打入冷宫。上EJBCA吧,又是一大堆的东西要装,Java运行环境啦,tomcat啦,等等等等。让人郁闷的是要用到一些Java的加密函数库,还必须手工到sun的网站下一堆额外的东西,心里又是不爽起来。结果发现EJBCA的配置更是让人崩溃,近一个星期下来,一事无成。

我靠,装这两个东西,把我精心打造的服务器搞得乱七八糟。于是决定,自己开发一个CA。套一句话说:我是程序员我怕谁~~~


最后决定基于OpenSSL来开发,给它套上一个网站做前端,使用PHP+MySQL来存储证书和相关数据。经过这段时间工作之余断断续续的开发,终于功能全部实现并测试通过了。其实大概一个月前基本功能就完成了,但是有一个很重要的功能——吊销证书——没有完成,所以搁置在一边,忙别的事情去了,这几天又抽出时间来,將吊销功能完成了。

这个自制的CA,我给它起名叫“nanoCA”,意思是极小的CA,呵呵,下面报告一下功能特点:

  • 在线安装,完成必要的数据库结构创建,生成根证书/服务器证书/超级管理员证书/OCSP响应者证书等;
  • 只能使用管理员证书登录方可进行后台的管理;
  • 多语言支持——全部UTF-8;
  • 可颁发测试证书和正式用户证书,前者立即发放,后者需要在后台管理中人工审核后进行签发;
  • 申请、签发、拒绝签发、吊销等都有邮件通知给证书用户;
  • 可以吊销证书,生成吊销列表;
  • 支持OCSP协议,可实时在线查询证书状态(解决了证书吊销列表的时间差问题);
  • 支持IE/Firefox在线申请证书;
  • ……

目前还不支持Vista平台上申请证书,是因为Vista下微软的证书申请控件已经全面更新且与XP即以前的系统中所带的证书申请控件不兼容。问题已经明确,解决方法也有了,有时间再加吧。

将来有时间,再加上证书更新的功能,就更完美了。呵呵~~~

目前有 2 个评论!


  1. Agos 说:

    我是你忠实的读者,文章很棒!


  2. 人见人爱,花见花开 说:

    技术的东西我虽然看不太明白,但至少觉得你是一个很认真的人!

敬请留言:

您可以使用下列XHTML标签:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>