1. 安装环境说明

笔者在本机的虚拟机下进行的安装,数据库已经装好了的。

ubuntu16.04 x64

postgresql:9 (可选)

wildfly10

2. 安装前准备

下载必要软件包(直接到官网下载即可):

组件    

下载地址

wildfly-10.0.0.Final.zip

http://download.jboss.org/wildfly/10.0.0.Final/wildfly-10.0.0.Final.zip

ejbca_ce_6_5.0.5.zip

https://sourceforge.net/projects/ejbca/files/ejbca6/ejbca_6_5_0/ejbca_ce_6_5.0.5.zip
apache-ant-1.10.1-bin.tar.gz http://mirrors.tuna.tsinghua.edu.cn/apache//ant/binaries/apache-ant-1.10.1-bin.tar.gz

jdk1.8

wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz
postgresql-9.4.1207.jar 数据库驱动包  可选的
   

本次笔者把以上的软件都安装在 /opt 目录下

登录操作系统的用户名为 royoan,以下所有操作都是该用户操作

jdk的安装就不说了,可以直接在linux下载的链接:

wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz

,注意环境变量的设置 JAVA_HOME.

2.1 建立数据库

笔者是在已有的 test数据库上创建了一个用户和一个该用户的schema,这样相当于一个新的数据库。

--登录数据库test增加一个用户和模式
create user ejbca password 'ejbca';
CREATE SCHEMA ejbca AUTHORIZATION ejbca;

如果不用任何外部的数据库,也可以用内置的h2内存数据库,这一步就不用任何操作。

2.2 ant安装

解压apache-ant-1.10.1-bin.tar.gz 到/opt目录下,得到 /opt/apache-ant-1.10.1

配置环境变量,修改 /home/royoan/.profile文件,在该文件的最后 插如如下代码

export JAVA_HOME=/opt/jdk1..0_131
PATH="$JAVA_HOME/bin:$PATH" export ANT_HOME=/opt/apache-ant-1.10.
PATH="$ANT_HOME/bin:$PATH"

保存后,执行

$:/opt$ source ~/.profile
$:/opt$ cd /opt
$:/opt$ ant
Buildfile: build.xml does not exist!
Build failed

出现如下Build failed 提示,表示ant装好了

2.3 wildfly安装

同样解压文件包到/opt目录得到

/opt/wildfly-10.0.0.Final目录

执行如下命令启动wildfly服务器:

cd /opt/wildfly-10.0..Final
bin/standalone.sh

2.3.1 在wildfly中安装postgresql驱动及配置数据源

把postgresql-9.4.1207.jar 文件放在 /home/royoan/ 目录下,待wildfly启动后执行如下命令:

jboss-cli.bat -c

该命令会进入命令行工具内,执行如下cli命令安装模块

module add --name=org.postgresql --resources=/home/roy/postgresql-9.4..jar --dependencies=javax.api,javax.transaction.api

该命令会在JBOSS_HOME/modules下面创建一个目录

|-org/postgresql/main
    |-module.xml
    ∟-postgresql-9.4.1207.jar

增加驱动 和增加数据源 的cli命令:

/subsystem=datasources/jdbc-driver=postgresql:add(driver-name="postgresql",driver-module-name="org.postgresql",driver-xa-datasource-class-name=org.postgresql.Driver)

data-source add --name=ejbcads --driver-name="postgresql" --connection-url="jdbc:postgresql://localhost:5432/test" --jndi-name="java:/EjbcaDS" --use-ccm=true --driver-class="org.postgresql.Driver" --user-name="ejbca" --password="ejbca" --validate-on-match=true --background-validation=false --prepared-statements-cache-size= --share-prepared-statements=true --min-pool-size= --max-pool-size= --pool-prefill=true --transaction-isolation=TRANSACTION_READ_COMMITTED --check-valid-connection-sql="select 1;"

以上命令会修改 standalone.xml配置文件,请注意上面的url,username,password按照你的数据库配置实际填写。


下面是如果使用h2数据库的命令:

只需要增加数据源即可:

data-source add --name=ejbcads --driver-name="h2" \
--connection-url="jdbc:h2://${jboss.server.data.dir}/ejbca" \
--jndi-name="java:/EjbcaDS" --use-ccm=true \
--user-name="ejbca" --password="ejbca" \
--use-java-context=true \
--enabled=true \
--validate-on-match=true --background-validation=false

2.3.2 wildfly 远程配置

同样是在cli命令行下执行命令:

/subsystem=remoting/http-connector=http-remoting-connector:remove
/subsystem=remoting/http-connector=http-remoting-connector:add(connector-ref="remoting",security-realm="ApplicationRealm")
/socket-binding-group=standard-sockets/socket-binding=remoting:add(port="")
/subsystem=undertow/server=default-server/http-listener=remoting:add(socket-binding=remoting)
:reload

配置日志:

/subsystem=logging/logger=org.ejbca:add
/subsystem=logging/logger=org.ejbca:write-attribute(name=level, value=DEBUG)
/subsystem=logging/logger=org.cesecore:add
/subsystem=logging/logger=org.cesecore:write-attribute(name=level, value=DEBUG)

3. EJBCA安装及配置

解压  ejbca_ce_6_5.0.5.zip  到/opt 目录;并进入解压后的文件夹。

3.1 配置

conf目录中是ejbca的配置文件,在build和生成CA的时候会读取这个文件中的一些设置,里边的配置文件都是以.sample结尾的,如果我们要修改默认的配置就要把需要修改的文件重命名,把.sample去掉
我们需要修改一下几个文件,先生成4个个重要的文件:

cd /opt/ejbca_ce_6_5.0.5/conf
mv ejbca.properties.sample ejbca.properties
mv web.properties.sample web.properties
mv database.properties.sample database.properties
mv install.properties.sample install.properties

修改 ejbca.properties 文件

设置 appserver.home 的值(就是应用服务器的安装位置,对于我们来说是 /opt/wildfly-10.0.0.Final)

修改 web.properties 文件

设置CA的超级管理员的证书密码,以及给应用服务器生成的服务器端证书的证书密码,和CA的truststory的密码等,这些密码的设置我们可以根据需要设置,或者保持默认的配置,需要注意的是httpsserver.hostname,这个要和后边的alias相对应,我的ip地址为 147.128.105.149,那这里我们设置为147.128.105.149

修改 database.properties文件

实际上只要使用wildfly的数据源即可 。把  datasource.jndi-name=EjbcaDS 的注释取消, 还要把 数据库类型database.name=postgres这个注释也要放开。否则安装出错,会执行h2数据库的库表安装脚本。笔者就是没有打开这个选项导致第一次安装出错。

修改 install.properties 文件

设置CA的名称,加密方式等,建议保持默认即可。

3.2 安装

进入命令行,执行如下命令:

cd /opt/ejbca_ce_6_5.0.5/
ant clean deployear
ant runinstall
ant deploy-keystore

deployear的那步时间会久一点,

ant runinstall 当移除了一个已存在的安装(有可用的TLS keystore)的时候,不需要执行该步命令。这句话说实话还没看懂。

ant deploy-keystore 这步执行完,会在ejbca目录下会生成keystore.jks, truststore.jks, 脚本会自动拷贝到 $JBOSS_HOME/standalone/configuration/keystore,我们不用管。

4. 最后配置Wildfly

4.1 移除wildfly中已有的TLS and HTTP功能

同样在 /opt/wild   目录中执行 jboss-cli.sh -c 进入cli命令行交互界面;执行如下cli:

/subsystem=undertow/server=default-server/http-listener=default:remove
/subsystem=undertow/server=default-server/https-listener=https:remove
/socket-binding-group=standard-sockets/socket-binding=http:remove
/socket-binding-group=standard-sockets/socket-binding=https:remove

4.2 配置新的TLS

注意如果下面的 reload执行的时候, wildfly的日志出现错误,先不要理会,继续按照下面指引操作即可。

/interface=http:add(inet-address="0.0.0.0")
/interface=httpspub:add(inet-address="0.0.0.0")
/interface=httpspriv:add(inet-address="0.0.0.0")
:reload
/socket-binding-group=standard-sockets/socket-binding=http:add(port="",interface="http")
/subsystem=undertow/server=default-server/http-listener=http:add(socket-binding=http)
/subsystem=undertow/server=default-server/http-listener=http:write-attribute(name=redirect-socket, value="httpspriv")
:reload

上面的"0.0.0.0"表示其他机器也可以访问了,原来默认是127.0.0.1就说明只能本机访问。

接着配置realm , socket-binding,注意两个密码,这里的 alias 就是前文提到的要配置ip地址。

/core-service=management/security-realm=SSLRealm:add()
/core-service=management/security-realm=SSLRealm/server-identity=ssl:add(keystore-path="${jboss.server.config.dir}/keystore/keystore.jks", keystore-password="serverpwd", alias="147.128.105.149")
/core-service=management/security-realm=SSLRealm/authentication=truststore:add(keystore-path="${jboss.server.config.dir}/keystore/truststore.jks", keystore-password="changeit")
/socket-binding-group=standard-sockets/socket-binding=httpspriv:add(port="",interface="httpspriv")
/socket-binding-group=standard-sockets/socket-binding=httpspub:add(port="", interface="httpspub")

执行完了后,退出 jboss-cli.sh

停掉 wildfly, 重新启动。(一定不要忘记了)

4.3 配置undertow服务

重新进入 jboss-cli.sh -c

执行:

/subsystem=undertow/server=default-server/https-listener=httpspriv:add(socket-binding=httpspriv, security-realm="SSLRealm", verify-client=REQUIRED)
/subsystem=undertow/server=default-server/https-listener=httpspriv:write-attribute(name=max-parameters, value="")
/subsystem=undertow/server=default-server/https-listener=httpspub:add(socket-binding=httpspub, security-realm="SSLRealm")
/subsystem=undertow/server=default-server/https-listener=httpspub:write-attribute(name=max-parameters, value="")
:reload

然后是一些重要的配置

/system-property=org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH:add(value=true)
/system-property=org.apache.catalina.connector.CoyoteAdapter.ALLOW_BACKSLASH:add(value=true)
/system-property=org.apache.catalina.connector.URI_ENCODING:add(value="UTF-8")
/system-property=org.apache.catalina.connector.USE_BODY_ENCODING_FOR_QUERY_STRING:add(value=true)
/subsystem=webservices:write-attribute(name=wsdl-host, value=jbossws.undefined.host)
/subsystem=webservices:write-attribute(name=modify-wsdl-address, value=true)
:reload

如果你在wildfly前面还装了个Apache服务,那么还要执行如下命令,否则不用执行:

/subsystem=undertow/server=default-server/ajp-listener=ajp-listener:add(socket-binding=ajp, scheme=https, enabled=true)
:reload

下载证书  /opt/ejbca_ce_6_5.0.5/p12/superadmin.p12  到本地, 然后导入浏览器,即可访问后台了(因为需要双向认证)

注意: 如果是用的chrome浏览器,证书导入浏览器后,请务必关闭所有的chrome,重新启动才生效。

ejbca的管理后台
https://147.128.105.149:8443/ejbca/adminweb

前台

http://147.128.105.149:8080/ejbca/

大功告成!!!

本文版权归作者 royoan(博文地址:http://www.cnblogs.com/royoan/p/7763633.html)所有,欢迎转载和商用,请在文章页面明显位置给出原文链接并保留此段声明,否则保留追究法律责任的权利,其他事项,可留言咨询。

EJBCA安装教程+postgresql+wildfly10的更多相关文章

  1. Greenplum 源码安装教程 —— 以 CentOS 平台为例

    Greenplum 源码安装教程 作者:Arthur_Qin 禾众 Greenplum 主体以及orca ( 新一代优化器 ) 的代码以可以从 Github 上下载.如果不打算查看代码,想下载编译好的 ...

  2. CentOS 6.0 图文安装教程

    CentOS 6.0下载地址:wget http://ftp.riken.jp/Linux/centos/6.0/isos/i386/CentOS-6.0-i386-bin-DVD.iso 下边就是安 ...

  3. gitlab安装教程

    gitlab安装教程     安装教程 官网安装方法 https://about.gitlab.com/downloads/#centos7 1.准备 sudo yum install curl po ...

  4. SonarQube 7.7 安装教程

    SonarQube 7.7 安装教程 一. CentOS设置 1. 更换阿里源 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.ali ...

  5. Linux+apache+mono+asp.net安装教程

    Linux+apache+mono+asp.net安装教程(CentOS上测试的) 一.准备工作: 1.安装linux系统(CentOS,这个就不多讲了) 2.下载所需软件 http-2.4.4.ta ...

  6. git 安装教程

    昆,简单说下安装教程1,安装Git2,安装TortoiseGit3,打开第一步安装的git工具GIT BASH

  7. Docker和Docker-compose安装教程以及docker-elk,docker-storm安装教程

    此安装教程仅供我自己安装配置时查看,其他的人不可以偷看!!! 安装Docker 1. Update package information, ensure that APT works with th ...

  8. RHEL 6.3 详细安装教程

    以前刚接触linux时,什么都不懂,为了学习,在电脑上安装双系统(原系统为Win7),吃过不少苦头,在网上搜教程,很多都是语焉不详,导致安装过程中战战兢兢.最近朋友面试运维,面试官有考他对linux安 ...

  9. Android Studio的下载和安装教程(从ADT到AS)

    之前一直使用的是Android development tools(简称ADT),后来说是google对ADT不再提供支持,然后一直在考虑是否把自己电脑换成Android Studio(简称AS),从 ...

随机推荐

  1. 克隆虚拟机 virtualbox 修改 uuid

    cmd E:\Program Files\Oracle\VirtualBox>VBoxManage.exe internalcommands sethduuid "E:\Program ...

  2. java ee Servlet 开发框架分享

    大家好! 这里分享一下javaEE Servlet开发框架! 1.首先是POST和GET入口以及接收处理文件 package com.sl.imps; import java.io.IOExcepti ...

  3. 开源API集成测试工具 Hitchhiker v0.1.3 - 参数化请求

    Hitchhiker 是一款开源的 Restful Api 集成测试工具,你可以轻松部署到本地,和你的team成员一起管理Api. 详细介绍请看: http://www.cnblogs.com/bro ...

  4. ArcGIS连带文字注记导出为CAD格式

    可以使用ArcGIS的"Export To CAD"工具将点.线.面等要素直接导出为CAD格式.如果要连带将ArcGIS中的文字标注导出为CAD格式要稍麻烦一点,下面是一个例子. ...

  5. 利用PN532读取二代证UID

    准备工作 芯片选择 NFC芯片,需要支持ISO14443 Type B协议,比如PN532 阅读ISO 14443 重点阅读如下内容: 7.3.4.1 状态转换图 7.3.5 ~ 7.3.7 REQB ...

  6. 转自知乎(JAVA后台开发可以纯粹用JAVA SE吗?)

    著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.作者:巴多崽链接:http://www.zhihu.com/question/29663744/answer/45154839来源: ...

  7. NavigationController的返回按钮自定义

    假设需求时这样: NavigationController下有2个视图,从A视图会Push到B视图,默认情况下,当显示视图B时,视图B的导航bar上会出现返回按钮,按钮标题文字默认为A视图的title ...

  8. Python迭代器,生成器--精华中的精华

    1. 迭代器 迭代器是访问集合元素的一种方式.迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退,不过这也没什么,因为人们很少在迭代途中往后退.另外,迭代器的一大 ...

  9. Mybatis Dynamic Query 2.0.2

    项目地址:https://github.com/wz2cool/mybatis-dynamic-query 文档地址:https://wz2cool.gitbooks.io/mybatis-dynam ...

  10. 19.Linux-USB总线驱动分析

    如下图所示,以windows为例,我们插上一个没有USB设备驱动的USB,就会提示你安装驱动程序 为什么一插上就有会提示信息? 是因为windows自带了USB总线驱动程序, USB总线驱动程序负责: ...