部署安全插件

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

版本说明

安全插件主要有 1.3.1 及 1.2.0 两个版本,其中 1.3.1 可通过管理控制台下载。

1.3.1 与 1.2.0 的主要不同在于更换了数据库软件,其中 1.3.1 使用了 h2 数据库,1.2.0 使用 mysql 数据库。

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

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

版本1.3.1

安装包文件说明:

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

系统环境要求:

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

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

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

application.propertieshsm-server-1.3.1.jarhsm.mv.dblogback.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=org.h2.Driver
# 数据库地址,填写数据库文件(hsm.mv.db)所存放的位置,如果与项目包在同一个文件下,则用如下配置
db.url=jdbc:h2:./hsm;MODE=MySQL
# 数据库帐号,不用修改,h2嵌入式数据库,与服务同时启动和关闭,账号密码已经配置好
db.username=brop
# 数据库密码,不用修改,h2嵌入式数据库,与服务同时启动和关闭,账号密码已经配置好
db.password=brop
# 是否允许数据库远程连接,如果正式生产环境中为了确保安全性不允许远程连接,请设置为false
spring.h2.console.settings.web-allow-others=true
# 控制台访问连接
spring.h2.console.path=/h2-console
# 控制台是否打开
spring.h2.console.enabled=true

第四步 部署安全插件服务

使用以下命令部署并启动服务: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"
}

版本1.2.0及以下

安装包文件说明:

文件名称 文件说明
application.properties 配置文件
hsm-server-1.2.0.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

第二步 初始化数据库

  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驱动类的位置,数据库地址,数据库帐号密码和最大 连接数

# 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]

参数列表:

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

接口返回:

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

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

返回示例:

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

results matching ""

    No results matching ""