EJBCA介绍
PKI(Public Key Infrastructure ) 即"公钥基础设施"较好地解决了 Web 应用中的机密性、完 整性、真实性和抗否认性等安全问题。但在 Web 环境下,还必须证明公钥与其持有者之间 的映射关系,并认证密钥持有者的身份。数字证书很好地解决了这个问题。同样,在分布式 环境下,还应该建立起安全、有效的证书管理机制,实现证书的生成、存储、分发、吊销等 操作,从而为 Web 应用乃至网络通信提供必要的密钥和证书服务。公钥基础设施 PKI 就是 这样的一种提供安全服务的基础设施。PKI 的核心是对证书及其公/私钥对的管理。同时, PKI 也代表着一种分布式的信任模型关系,它首先要选择或定义证书格式及其操作过程,其 次需要明确证书签发机构或个人之间的信任关系。
EJBCA 就是这样一个针对 PKI 证书体系企业级的开源解决方案。它基于 J2EE 技术,提供 了一个强大的、高性能并基于组件的 CA 体系。EJBCA 兼具灵活性和平台独立性,能够独立 使用,也能和任何 J2EE 应用程序集成。
软件环境
操作系统:Ubuntu 10.10
数据库:mysql 5.0
JDK:jdk 1.6_20
EJBCA:ejbca 3.9.3
ANT: ant 1.8.2
JBOSS:jboss-5.0.1.GA
软件安装路径:
ejbca 及相关软件都安装在/opt/目录下。
安装软件步骤省略!!
配置Jboss 这一步为可选项:
修改Jboss监听端口(默认为8080)
vim /opt/jboss-5.0.1.GA/server/default/deploy/jbossweb.sar/server.xml
<Connector port="8080" address="${jboss.bind.address}" maxThreads="250" maxHttpHeaderSize="8192" emptySessionPath="true" protocol="HTTP/1.1" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" />
修改为:
<Connector port="8086" address="0.0.0.0" maxThreads="250" maxHttpHeaderSize="8192" emptySessionPath="true" protocol="HTTP/1.1" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" />
修改Jboss启动参数
vim /opt/jboss-5.0.1.GA/bin/run.conf
修改如下:
JAVA_OPTS="‐Xms1024m –Xmx1024m –server –XX:MaxPermSize=512m –XX:PermSize=256m ‐XX:MaxNewSize=512m ‐Dsun.rmi.dgc.client.gcInterval=3600000 ‐Dsun.rmi.dgc.server.gcInterval=3600000"
创建ejbca数据库
-> mysql -h localhost –u root –p
-> create database ejbca default character set utf8;
配置环境变量(本人配置在/etc/environment )
/etc$ sudo vim environment
ANT_HOME="/opt/apache-ant-1.8.2" |
JBOSS_HOME="/opt/jboss-5.0.1.GA" |
J2EE_HOME="/opt/jboss-5.0.1.GA" |
APPSRV_HOME="/opt/jboss-5.0.1.GA" |
EJBCA_HOME="/opt/ejbca_3_9_3" |
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/apache-ant-1.8.2/bin:/opt/jboss-5.0.1.GA/bin:" |
EJBCA配置
1. 修改ejbca.propterties配置文件
cp /opt/ejbca_3_9_3/conf/ejbca.properties.sample /opt/ejbca_3_9_3/confejbca.properties
配置CA参数(可选: 如果这里配置了,在ejbca install的时候就不用再写,建议不要配置):
ca.name=XXX CA
ca.dn=CN=XXX CA,O=XXX,C=CN
2.修改database.properties
cp /opt/ejbca_3_9_3/conf/database.properties.sample /opt/ejbca_3_9_3/conf/database.properties
sudo vim /opt/ejbca_3_9_3/conf/database.properties
将mysql相关语句打开,如下:
database.name=mysql
datasource.mapping=mySQL
database.url=jdbc:mysql://127.0.0.1:3306/ejbca?characterEncoding=UTF‐8 database.driver=com.mysql.jdbc.Driver
database.username=root
database.password=你mysql的密码
3.修改web.properties
cp /opt/ejbca_3_9_3/conf/web.properties.sample /opt/ejbca_3_9_3/conf/web.properties
sudo vim /opt/ejbca_3_9_3/conf/web.properties
修改内容,如下:
httpserver.pubhttp=8086
4.安装ejbca(启动2个terminal(jboss,ejbca))
4.1 cd /opt/ejbca_3_9_3
//将ejbca/lib 下面以bc开头的.jar包复制到jboss/server/default/lib下
4.2 cp lib/bc*jar /opt/jboss-5.0.1.GA/server/default/lib/
4.3 ant bootstrap
4.4 /opt/jboss-5.0.1.GA/bin/run.sh
4.5 ant install 一路回车确认完成安装(根据提示输入你的CA信息),生成了 CA、Jboss 证书、浏览器证书。
4.6 杀掉 jboss Ctrl+C
4.7 ant deploy
4.8 /opt/jboss-5.0.1.GA/bin/run.sh
4.9 将生成的CA根证书导入到客户端浏览器中.证书路径:/opt/ejbca3.9.3/p12/superadmin.p12,windows中导入证书到浏览器很简单,双击superadmin.p12证书,一路下一步(第二部要输入证书密码,默认密码为:ejbca),完成!
执行上面步骤后可以查看mysql数据库,自动创建表和基础数据.
上面步骤都成功后,可以在客户端浏览器中输入:
http://你CA服务器地址:8086/ejbca
这样就可以管理你的证书了!