EJBCA 6.5.0.5 安装
(指导文章:https://github.com/liugh1974/ejbca-install)
1.所需环境
- centOs7
- ejbca_ce_6_10_1_2.zip
- wildfly-10.1.0.Final.zip
- jdk-8u281-linux-x64.tar.gz
- mysql-connector-java-5.1.42.jar
- mysql5.7
- apache-ant-1.10.3-bin.zip
- 所有需要文件,我会一起放在软件包中,地址,提取码:veit
2.正式开始安装
1.1安装jdk1.8(命令行安装)
(1)执行rpm -qa|grep java查看虚拟机的jdk版本
java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64
python-javapackages-3.4.1-11.el7.noarch
tzdata-java-2020f-1.el7.noarch
java-1.8.0-openjdk-headless-1.8.0.282.b08-1.el7_9.x86_64
javapackages-tools-3.4.1-11.el7.noarch
java-1.7.0-openjdk-headless-1.7.0.261-2.6.22.2.el7_8.x86_64
java-1.8.0-openjdk-1.8.0.282.b08-1.el7_9.x86_64
#以上是我的版本,我选择全部卸载,重新安装
(2)执行以下命令卸载原有jdk
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.282.b08-1.el7_9.x86_64
rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.261-2.6.22.2.el7_8.x86_64
rpm -e --nodeps java-1.8.0-openjdk-1.8.0.282.b08-1.el7_9.x86_64
(3)现在执行rpm -qa|grep java,发现已经没有jdk,可以进行下一步
(4)在终端执行yum search java | grep -i --color JDK,可查询可安装的jdk软件包
(5)执行yum install java-1.8.0-openjdk 安装
(6)安装过后,执行rpm -qa|grep java 查询jdk版本,显示
1.2以包安装 jdk1.8
(1)上传jdk-8u281-linux-x64.tar.gz,jce_policy-8_3.zip,开始安装
(2)tar -xvf jdk-8u281-linux-x64.tar.gz #解压缩 可以带路径
(3)#配置环境变量
vi /etc/profile
#在该文件底部加入
export JAVA_HOME=/usr/java/jdk1.8.0_281
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin
#esc,冒号wq,`source /etc/profile `重新加载配置文件,执行java -version 显示版本
(4)安装更新jdk的 policy
unzip jce_policy-8_3.zip
#将US_export_policy.jar和local_policy.jar拷贝至 $JAVA_HOME/jre/lib/security/policy/
cp -r local_policy.jar $JAVA_HOME/jre/lib/security/policy/limited
cp -r US_export_policy.jar $JAVA_HOME/jre/lib/security/policy/limited
cp -r local_policy.jar $JAVA_HOME/jre/lib/security/policy/unlimited
cp -r US_export_policy.jar $JAVA_HOME/jre/lib/security/policy/unlimited
2.安装JBoss
rz wildfly-10.1.0.Final.zip
unzip wildfly-10.1.0.Final.zip
#配置环境变量
vi /etc/profile
#该文件底部加入
###start###
export JBOSS_HOME=解压缩路径
export APPSRV_HOME=解压缩路径
export PATH=$PATH:${JBOSS_HOME}/bin
###end###
#加载配置文件
source /etc/profile
- 打开浏览器,访问9990端口,输入账号密码,即可进入控制台
3.安装并配置数据库
(1)mysql5.7数据库(目前放弃,出了问题暂时解决不了)(问题解决!EJBCA的版本与jdk8不兼容,换了个版本)
-
安装mysql5.7
(1)执行wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm下载MySQL官方的 Yum Repository
(2).执行yum -y install mysql57-community-release-el7-10.noarch.rpm下载安装用的Yum Repository
(3).执行yum -y install mysql-community-server安装mysql服务器,下载大约202M,具体时间视个人网速,该命令会直接替换centOs7自带的mariadb
-
配置mysql
(1).启动mysql:systemctl start mysqld.service
(2).查看mysql运行状态:systemctl status mysqld.service
(3).此时mysql已经运行,密码也被随机创建,想进入mysql服务还需查看日志查看密码
- 执行grep “password” /var/log/mysqld.log查看密码
- 执行mysql -uroot -p输入密码,进入数据库
- 执行ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘你的密码’;修改默认密码,注意该密码必须设置有大小写,数字加符号,如果只是测试,可在设置完密码后,修改mysql的密码策略,下面提供方法
-
执行SHOW VARIABLES LIKE ‘validate_password%’;查看密码策略
-
执行set global validate_password_policy=LOW;密码只会验证长度
-
执行set global validate_password_length=4;设置长度为4位
-
此时执行ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘你的密码’;或者update user set authentication_string=新密码 where user = ‘root’;即可
-
(4)修改mysql编码
-
在mysql命令下执行status看到
-
编辑mysql的配置文件,执行 vi /etc/my.cnf,添加4行代码,在开头添加[client]
default-character-set=utf8,[mysqld]标签下添加character-set-server=utf8
collation-server=utf8_general_ci
-
重启mysql : 执行 service mysqld restart,登陆mysql,此时编码已改变
(5).创建ejbca用户以及数据库
- create user ejbca IDENTIFIED BY ‘ejbca’;创建用户名和密码为ejbca的用户
- GRANT ALL PRIVILEGES ON . TO ‘ejbca’@'localhost’给其本机访问权限
- 这里如果报错,则是因为 创建的ejbca用户 其 host 为 %,将其修改为localhost
- use mysql
- update user set Host =‘localhost’ where User =‘ejbca’;
- create database ejbca default character set utf8 collate utf8_general_ci创建ejbca数据库并设置编码
- 执行grep “password” /var/log/mysqld.log查看密码
4.安装ant
- rz命令上传文件apache-ant-1.10.3-bin.zip
- unzip apache-ant-1.10.3-bin.zip
- 配置环境变量
- vi /etc/profile
###start###
export ANT_HOME=解压路径
export PATH=$PATH:${ANT_HOME}/bin
###end###
- 加载配置文件
- source /etc/profile
5.jboss连接数据库
(1).mysql(这里使用配置文件)
#新建 $JBOSS_HOME/modules/system/layers/base/com/mysql/jdbc/main 目录
cp mysql-connector-java-5.1.42.jar $JBOSS_HOME/modules/system/layers/base/com/mysql/jdbc/main
vi $JBOSS_HOME/modules/system/layers/base/com/mysql/jdbc/main/module.xml
#文件内容如下
###start###
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.3" name="com.mysql.jdbc">
<resources>
<resource-root path="mysql-connector-java-5.1.42.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
<module name="javax.servlet.api" optional="true"/>
</dependencies>
</module>
####end###
#配置standalone.xml
vi $JBOSS_HOME/standalone/configuration/standalone.xml
#修改内容如下
###start###
#<drivers>标签 添加如下内容
<driver name="mysql" module="com.mysql.jdbc">
<driver-class>com.mysql.jdbc.Driver</driver-class>
<xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>
</driver>
#<datasources>标签,添加如下内容
<datasource jndi-name="java:/EjbcaDS" pool-name="ejbcads" enabled="true" use-ccm="true" use-java-context="true">
<connection-url>jdbc:mysql://127.0.0.1/ejbca?characterEncoding=UTF-8&useSSL=false</connection-url>
<driver>mysql</driver>
<transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
<pool>
<min-pool-size>5</min-pool-size>
<max-pool-size>150</max-pool-size>
<prefill>true</prefill>
</pool>
<security>
<user-name>root</user-name>
<password>root</password>
</security>
<validation>
<check-valid-connection-sql>select 1;</check-valid-connection-sql>
<validate-on-match>true</validate-on-match>
<background-validation>false</background-validation>
</validation>
<statement>
<prepared-statement-cache-size>50</prepared-statement-cache-size>
<share-prepared-statements>true</share-prepared-statements>
</statement>
</datasource>
#connection-url 填写你实际的数据库连接
#<securit>标签 填写数据库的账号密码
#jndi-name 为 ejbca 里面配置的 jndi-name名字,必须一致
###end###
#启动wildfly
$JBOSS_HOME/bin/standalone.sh
#连接控制台
$JBOSS_HOME/bin/jboss_cli.sh -c
#显示9990端口后,执行以下命令,期间,会与JBOSS通信,打印日志,jboss_cli 全部返回 success
/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="4447")
/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)
6.安装EJBCA
(1).进入ejbca_ce_6_5.0.5.zip所在目录,执行unzip ejbca_ce_6_5.0.5.zip解压
(2).修改配置文件
- 需要修改以下配置文件
cp cesecore.properties.sample cesecore.properties
cp crlstore.properties.sample crlstore.properties
cp database.properties.sample database.properties
cp ejbca.properties.sample ejbca.properties
cp install.properties.sample install.properties
cp web.properties.sample web.properties
-
cd ejb目录/conf/
- 如果不修改配置文件,会默认使用,ejbca默认读取.properties后缀文件,因为安全起见,需要保存源文件
#修改内容如下,如无要求,默认即可,建议所有密码设置为一样的,防止搞混 ###crlstore.properties -start### crlstor.enable=true crlstore.contextroot=你的文件夹 ###crlstore.properties -end### ###database.properties -start### database.name=mysql database.url=jdbc:mysql://127.0.0.1:3306/ejbca?characterEncoding=UTF-8 database.driver==com.mysql.jdbc.Driver database.username=数据库账号(ejbca) database.password=数据库密码(ejbca) ###database.properties -end### ###ejbca.properties -start### appserver.home=${env.APPSRV_HOME} 配置wildfly时 APPSRV_HOME 环境变量 ca.cmskeystorepass=你的密码 ejbca.cli.defaultusername=ejbca ejbca.cli.defaultpassword=ejbca ###ejbca.properties -end### ###install.properties -start### ca.name=你的 ca name 例如: DemoManagmentCA ca.dn=你的 ca.dn 例如: DemohuanManagementCA,O=Demo EJBCA,C=SE ca.tokentype=soft ca.tokenpassword=你的密码 ca.keyspec=2048 ca.keytype=RSA ca.signaturealgorithm=SHA256WithRSA ca.validity=7300 ca.policy=null ###install.properties -end### ###web.properties -start### java.trustpassword=你的密码 superadmin.cn=your superadmin cn 例如:DemoSuperAdmin superadmin.password=你的密码 superadmin.batch=true httpsserver.password=你的密码 httpsserver.hostname=本机的ip,或者域名 httpsserver.dn=CN=${httpsserver.hostname},O=Demo EJBCA,C=SE ###web.properties -end###
- 开始安装ejbca
-
#在EJBCA_HOME目录下执行以下命令,每条命令必须等 jboss 控制台打印完信息
- ant clean deployear
- ant runinstall
- ant deploy-keystore
- 配置控制台
#执行 $JBOSS_HOME/bin/jboss_cli.sh -c 连接jboss #依次执行以下命令,每条命令必须等 jboss 控制台打印完信息 #(移除wildfly中已有的TLS and HTTP功能) /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 #(配置新的TLS) /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="8080",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 #(上面的命令执行后, wildfly console会有一些异常日志出现,不需要关心它们) /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="前期设置的密码", alias="前期ejbca的配置httpsserver.hostname") /core-service=management/security-realm=SSLRealm/authentication=truststore:add(keystore-path="${jboss.server.config.dir}/keystore/truststore.jks", keystore-password="前期设置的密码") /socket-binding-group=standard-sockets/socket-binding=httpspriv:add(port="8443",interface="httpspriv") /socket-binding-group=standard-sockets/socket-binding=httpspub:add(port="8442", interface="httpspub") #重启jboss(必须重启) #继续使用 $JBOSS_HOME/bin/jboss_cli.sh -c 连接jboss #依次执行以下命令,每条命令必须等 jboss 控制台打印完信息 /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="2048") /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="2048") :reload /subsystem=undertow/server=default-server/ajp-listener=ajp-listener:add(socket-binding=ajp, scheme=https, enabled=true) :reload
-
7.ejbca安装完成
- 将 $EJBCA_HOME/p12/superadmin.p12 安装至浏览器
- 访问 https://你的网址:8443/ejbca/adminweb #管理后台
- http://你的网址:8080/ejbca 前台页面