ejbca6在centos7中安装

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数据库并设置编码
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&amp;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 前台页面
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值