“自制CA”的开发告一段落
因为种种原因,需要在公司的外网服务器上架构一个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 个评论!
![Apex[有所思,有所志]](http://apex.ncksoft.com/wp-content/themes/deepwater/images/dw_site_logo.png)
Agos 说:
我是你忠实的读者,文章很棒!
人见人爱,花见花开 说:
技术的东西我虽然看不太明白,但至少觉得你是一个很认真的人!