部署安全插件

本节主要用于指导合作方部署安全插件,并通过接口调用获取公钥地址用于络谱平台准入。

版本说明

安全插件主要有 v2.0.0+ 及 v1.3.1 两个版本,其中 v2.x+ 可通过管理控制台下载,v1.x的版本将不再支持下载。

v2.0.0+ 与 v1.3.1 使用 MySQL 数据库。

请注意,由于私钥无法迁移,若您更换软件版本,则需要重新生成密钥,并将新的公钥地址绑定到身份合约,即通过管理控制台提交修改身份合约申请。

以下分别是两个版本的使用说明。

版本v2.0.0及以上

安装包文件说明:

文件名称 文件说明
application.properties 配置文件
hsmserver-web-*.jar 项目文件
schema_mysql.sql 数据库初始化脚本
logback.xml 日志配置文件
shutdown.sh 项目关闭文件
startup.sh 项目启动文件

系统环境要求:

选项 系统要求
内存 ≥4G
CPU 双核
磁盘 ≥50GB
操作系统 Ubuntu 16.04
JDK JDK 1.8+
MySQL 5.6+

API接口参数说明:

  1. 安全插件服务地址:HSM_HOST
  2. 安全插件服务端口号:PORT
  3. 安全插件的密钥唯一标识:userId

第一步 修改JDK环境

  1. 安全插件服务需要修改原 JDK 的两个 jar 包.

  2. 破解 AES 加解密的长度限制,需要替换以下 jar 包:

-local_policy.jar
-US_export_policy.jar

替换目录:$JAVA_HOME/jre/lib/security

说明:jdk是“jdk-8u162”及以上版本就跳过此步骤。

第二步 初始化数据库

  1. 在MySQL中创建给本项目使用的数据库。

  2. 切换至上一步创建的数据库,并运行initDB.sql,1.2.0.sql,1.3.0.sql文件中的数据库初始化语句

第三步 拷贝文件到目标文件夹

application.propertieshsm-server-1.2.0.jarlogback.xmlshutdown.shstartup.sh文件拷贝到目标文件夹中,用于之后的项目启动。

第四步 修改application.properties配置文件

application.propertes配置文件中包含两类配置项:用户需要按照实际部署情况修改的配置项,和BROP平台中不会用到所以无需修改的配置项。

以下列举用户需要修改的配置项,其余配置项请不要修改:

  1. web服务配置项

说明:分别表示启动的端口号,uri地址编码、服务器上下文路径

# 启动的端口号
server.port=8080
# uri地址编码
server.tomcat.uri-encoding=UTF-8
# 服务器上下文路径,默认值为/
# 若server.tomcat.basedir=/ 则访问服务路径为http://HSM_HOST:PORT/
# 若server.tomcat.basedir=/hsmServer,
# 则访问服务路径为http://HSM_HOST:PORT/hsmServer
server.tomcat.basedir=/

2.数据库配置项

说明:分别表示jdbc驱动类的位置,数据库地址,数据库帐号密码和最大 连接数

# 服务端口号
server.port=8888
# jdbc驱动类的位置
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# 数据库地址,请根据实际MySQL配置填写ip和port参数
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/hsm_server?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull
# 数据库帐号
spring.datasource.username=test
# 数据库密码
spring.datasource.password=test

第五步 部署安全插件服务

使用以下命令部署并启动服务:bash startup.sh

说明:

  1. 服务启动之后,当前目录下会生成log/hsmserver.log文件,该文件记录了本项目所有可输出日志信息。其中日志信息的配置在日志配置文件logback.xml中定义,如需修改日志配置可以参考logback官网查阅具体语法格式。
  2. 如需关闭服务可以使用以下命令:bash shutdown.sh
  3. 执行第五步,若能正常生成密钥,则启动成功。

第六步 生成密钥

调用生成密钥接口可以在安全插件内生成一对Eckey密钥,并返回公钥地址。如果已经存在,则不重复创建,返回对应userId的公钥地址。安全插件的数据表中存放的是账户公私钥对,请做好备份,在安全插件迁移或者其他不可预知的数据丢失时能恢复这些表信息。

请求地址:http://HSM_HOST:PORT/crypt/generateKeyFromHsm.json?userId=[userId]

参数列表:

名称 类型 描述
userId String 密钥的唯一标识,例如myCompanyAdmin

接口返回:

名称 类型 描述
detail String 密钥公钥地址,用于传给BROP运营方进行身份准入

请求示例:http://HSM_HOST:PORT/crypt/generateKeyFromHsm.json?userId=myCompanyAdmin

返回示例:

{
  "code": "SUCCESS",
  "detail":"AF4F219A80D206DC6CE04A64603887396BD0C6D1"
}

版本v1.3.1

安装包文件说明:

文件名称 文件说明
application.properties 配置文件
hsm-server-1.3.1.jar 项目文件
initDB.sql,1.2.0.sql,1.3.0.sql 数据库文件
logback.xml 日志配置文件
shutdown.sh 项目关闭文件
startup.sh 项目启动文件

系统环境要求:

选项 系统要求
内存 ≥4G
CPU 双核
磁盘 ≥50GB
操作系统 Ubuntu 16.04
JDK JDK 1.8+
MySQL 5.6+

API 接口参数说明:

  1. 安全插件服务地址:HSM_HOST
  2. 安全插件服务端口号:PORT
  3. 安全插件的密钥唯一标识:userId

第一步 修改 JDK 环境

  1. 安全插件服务需要修改原 JDK 的两个 jar 包.

  2. 破解 AES 加解密的长度限制,需要替换以下 jar 包:

-local_policy.jar
-US_export_policy.jar

替换目录:$JAVA_HOME/jre/lib/security

说明:jdk是“jdk-8u162”及以上版本就跳过此步骤。

第二步 拷贝文件到目标文件夹

application.propertieshsm-server-1.3.1.jarlogback.xmlshutdown.shstartup.sh文件拷贝到目标文件夹中,用于之后的项目启动。

第三步 修改 application.properties 配置文件

application.propertes 配置文件中包含两类配置项:用户需要按照实际部署情况修改的配置项,和 BROP 平台中不会用到所以无需修改的配置项。

以下列举用户需要修改的配置项,其余配置项请不要修改:

1.web 服务配置项

说明:分别表示启动的端口号,uri 地址编码、服务器上下文路径

# hsm impl type(virtual/hw)
implement=virtual
# 启动的端口号
server.port=8080
# uri地址编码
server.tomcat.uri-encoding=UTF-8
# 服务器上下文路径,默认值为/
# 若server.tomcat.basedir=/ 则访问服务路径为http://HSM_HOST:PORT/
# 若server.tomcat.basedir=/hsmServer,
# 则访问服务路径为http://HSM_HOST:PORT/hsmServer
server.tomcat.basedir=/

2.数据库配置项

说明:分别表示jdbc驱动类的位置,数据库地址,数据库帐号密码

# jdbc驱动类的位置
db.driverClassName=com.mysql.jdbc.Driver
# 数据库地址,请根据实际MySQL配置填写ip和port参数
db.url=jdbc:mysql://[mysql_ip]:[mysql_port]/[db_name]?prepStmtCacheSize=517&cachePrepStmts=true&autoReconnect=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=true
# 数据库帐号
db.username=brop
# 数据库密码
db.password=brop
# 数据库最大连接数
db.maxActive=500

第四步 部署安全插件服务

使用以下命令部署并启动服务:bash startup.sh

说明:

  1. 服务启动之后,当前目录下会生成log/hsmserver.log文件,该文件记录了本项目所有可输出日志信息。其中日志信息的配置在日志配置文件logback.xml中定义,如需修改日志配置可以参考 logback 官网查阅具体语法格式。
  2. 如需关闭服务可以使用以下命令:bash shutdown.sh
  3. 执行第五步,若能正常生成密钥,则启动成功。

第五步 生成密钥

调用生成密钥接口可以在安全插件内生成一对Eckey密钥,并返回公钥地址。如果已经存在,则不重复创建,返回对应userId的公钥地址。安全插件的数据表中存放的是账户公私钥对,请做好备份,在安全插件迁移或者其他不可预知的数据丢失时能恢复这些表信息。

请求地址:http://HSM_HOST:PORT/crypt/generateKeyFromHsm.json?userId=[userId]&type=[ECC/SM2]

参数列表:

名称 类型 描述
userId String 密钥的唯一标识,例如myCompanyAdmin
type String 密钥类型,ECC或SM2

接口返回:

名称 类型 描述
detail String 密钥公钥地址,用于传给BROP运营方进行身份准入

请求示例:http://HSM_HOST:PORT/crypt/generateKeyFromHsm.json?userId=myCompanyAdmin&type=SM2

返回示例:

{
    "code": "SUCCESS",
    "detail":"AF4F219A80D206DC6CE04A64603887396BD0C6D1"
}

版本从v1.x升级到v2.x的步骤

第一步 关闭安全插件服务

参考 关闭程序中的 关闭安全插件服务。

第二步 备份安全插件必要文件

备份安全插件的数据库文件、配置文件、日志配置文件。

第三步 替换安全插件重要文件

替换加密机包文件hsm*.jar、应用配置文件application.properties、启动和关闭脚本start.shshutdown.sh

第四步 参考本文档版本v2.0.0及以上章节配置并验证安全插件服务

参考本文档版本v2.0.0及以上章节配置并验证安全插件服务。

results matching ""

    No results matching ""