0x01 前言

我一直都自行签发数字证书并部署在测试和生产环境中,因为商业的CA非常昂贵,同时我也没有相应的资质申请。管理自签发的数字证书也是一个发问题,在这里,我使用EJBCA。

在过去很长的一段时间里我都是随心所欲地签发私有证书,因为服务于服务之间都需要用到数字证书,这导致我需要维护的证书越来越多,而且存在很大的风险。

为了方便管理,我找到一款开源免费的CA管理系统:EJBCA。它可以管理CA与各级证书,签发和吊销证书,同时还支持CRL与OCSP。

0x02 准备

我将在centos7上部署配置这个系统,过程不算难,但因为网络的关系可能需要较长的时间。

EJBCA基于java,最新版的EJBCA需要用到JBoss EAP 7作为基础部署环境,同时你还需要一个mariadb存储数据。当然你还可以选择其他的数据库,具体请参考以下的安装指引:

在配置mariadb的时候请注意编码要为utf-8,以下是我数据库的信息:

  • mariadb for EJBCA
    • host:10.1.1.14
    • dbname:ejbca
    • username:ejbca
    • passwd:ejbca

但在实际安装中,我发现最新版的JBoss EAP 7会导致EJBCA部署失败,所以我选择使用JBoss EAP 6.4.0这个版本,JBoss EAP可通过以下地址下载:

下载的时候请下载 Installer:

JBoss EAP的下载需要一个账户,在非商业使用环境中是免费的。

最后还需要用到ant命令,请使用以下命令安装:

准备好之后,应该会有这两个文件:

0x03 JBoss EAP

安装ant的时候会默认装上JDK 1.8,所以我用java命令安装JBoos EAP:

在安装过程中会有交互:

经过一系列交互之后就会解包安装:

到这里已经完成JBoss EAP的安装,其实他有个基于web的控制面饭,但是服务器只监听127.0.0.1这个IP,如果需要监听其他IP或0.0.0.0,请修改以下文件:

随后使用以下命令启动服务,在这里先不用脚本,因为后面需要重启服务。启动服务后再打开一个SSH窗口进行下面的步骤:

确认JBoss EAP服务启动后即可通过浏览器打开管理界面:

 

0x04 mariadb connector

为了让JBoss EAP连接上mariadb,需要使用MariaDB Connector,可以通过以下地址下载:

我写这篇文章的时候,最新版是2.0.3,可以通过以下地址直接下载:

然后创建数据库驱动文件夹并将下载好的MariaDB Connector放置到该目录中:

最后还需要在该目录中新建一个配置文件:

请注意修改resources字段中的文件名。

然后是启用MariaDB Connector,使用jboss-cli.sh进入JBoss cli:

如果提示disconnected,则需要输入connect并回车,如果一切正常则显示:

然后输入以下命令在JBoss中注册mariadb驱动:

完成后输入exit回车即可退出。

0x05 EJBCA

在新SSH窗口中解压并进入EJBCA源码目录:

0x05.1 配置文件

先进入配置文件目录:

配置文件目录包含以下文件:

EJBCA只加载后缀名为properties的文件,否则则加载默认配置。在这里我们需要修改以下文件:

  • database.properties:数据库配置文件
  • ejbca.properties:EJBCA配置文件
  • install.properties:安装配置文件
  • web.properties:web服务配置文件

首先是数据库配置文件,先将文件复制一份然后进行修改:

然后复制并修改EJBCA配置文件:

然后修改安装配置文件:

最后是web服务配置文件:

0x05.2 部署 / 安装

修改完成配置文件后回到EJBCA源码根目录并运行以下命令记性部署:

部署需要较长的时间,请耐心等待。如果成功则显示:

然后还需要安装,安装过程中可以看到配置信息:

成功后会显示如下内容:

数据库则会生成以下表:

0x05.3 登入

这时候可以通过以下地址访问公开页面:

如果需要登入管理界面,则需要先重启JBoss。回到JBoss的SSH窗口按下组合键CTRL+C终止运行,然后再重新启动JBoss。从控制台中可以查看监听的地址与端口:

在登入之前需要在以下目录将p12证书文件保存到本地并安装:

在windows系统中双击下载的p12文件并选择“本地用户”:

证书密码为“ejbca”:

证书导入完毕后即可通过浏览器登入管理面板:

这里要选择正确的数字证书,否则无法登入,登入后的界面如下:

0x06 结语

EJBCA是一套很强大的CA管理软件,完全可以在企业内部部署使用。

JBoss的启动可以使用以下脚本:

评论提交需几秒钟,请耐心等待 / comments submit takes few seconds, please be patient

请输入留言 / Please enter a message
请输入你的称呼 / Please enter your name

输入前先刷新 / refresh before entering