CA中转服务
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

5.1 KiB

CA平台链接器服务

这是一个客户端程序和CA服务中间的信息交互服务,提供登录验证、自动签名开启和字符串签名功能。

功能特性

  1. 登录验证 - 支持扫码登录
  2. 自动签名开启 - 开启自动签名功能
  3. 字符串签名 - 支持多种签名方式
  4. Base64编码/解码 - 提供数据转换工具
  5. 时间戳服务 - 创建时间戳

API接口

1. 登录验证

接口: POST /Client/Login

请求体:

{
  "account": "test",
  "password": "123456"
}

响应:

{
  "success": true,
  "message": "登录成功,请扫码",
  "signDataId": "xxx",
  "qrCode": "xxx"
}

2. 添加签名任务

接口: POST /Client/AddSignJob

请求体:

{
  "title": "测试签名",
  "data": "要签名的数据",
  "userId": "用户ID(可选)",
  "algo": "SM3withSM2",
  "expiryDate": "1400"
}

响应:

{
  "success": true,
  "message": "添加签名任务成功",
  "signDataId": "xxx",
  "qrCode": "xxx"
}

3. 自动签名

接口: POST /Client/AutoSign

请求体:

{
  "userId": "用户ID",
  "signToken": "签名令牌",
  "data": "要签名的数据",
  "algo": "SM3withSM2",
  "expiryDate": "1400"
}

响应:

{
  "success": true,
  "message": "自动签名成功",
  "signResult": "签名结果",
  "signCert": "签名证书",
  "signDataId": "xxx"
}

4. 获取签名结果

接口: POST /Client/GetSignResult

请求体:

{
  "signDataId": "签名数据ID"
}

响应:

{
  "success": true,
  "message": "获取签名结果成功",
  "jobStatus": "FINISH",
  "signResult": "签名结果",
  "signCert": "签名证书",
  "userId": "用户ID"
}

5. 查询签名图片

接口: POST /Client/QueryImage

请求体: "用户ID"

响应:

{
  "success": true,
  "message": "查询签名图片成功",
  "image": "base64图片数据"
}

6. Base64编码

接口: POST /Client/Base64Encode

请求体:

{
  "plainText": "要编码的文本"
}

响应:

{
  "success": true,
  "message": "Base64编码成功",
  "base64Data": "编码后的数据"
}

7. Base64解码

接口: POST /Client/Base64Decode

请求体:

{
  "base64Data": "要解码的Base64数据"
}

响应:

{
  "success": true,
  "message": "Base64解码成功",
  "plainText": "解码后的文本"
}

8. 创建时间戳

接口: POST /Client/CreateTss

请求体:

{
  "oriData": "原文数据",
  "attachCert": true
}

响应:

{
  "success": true,
  "message": "创建时间戳成功",
  "tsResp": "时间戳响应"
}

配置说明

appsettings.json 中配置CA服务相关参数:

{
  "CossBaseUrl": "https://newcoss-dev.isignet.cn:10201/coss/service/v1/",
  "CossAppId": "APP_7B3F36A14E99410A80B37AEF332E3247",
  "CossSecureCode": "DLwiH46Esb8ccNTkuSSVAadNTWUfW0sc",
  "CossSignAlgo": "HMAC",
  "CossVersion": "1.0"
}

使用示例

1. 启动服务

dotnet run

2. 访问Swagger文档

打开浏览器访问: http://localhost:5000/LISPlatformLinker/swagger

3. 调用API示例

登录并获取二维码

curl -X POST "http://localhost:5000/LISPlatformLinker/Client/Login" \
  -H "Content-Type: application/json" \
  -d '{"account":"test","password":"123456"}'

添加签名任务

curl -X POST "http://localhost:5000/LISPlatformLinker/Client/AddSignJob" \
  -H "Content-Type: application/json" \
  -d '{"title":"测试签名","data":"Hello World","algo":"SM3withSM2"}'

自动签名

curl -X POST "http://localhost:5000/LISPlatformLinker/Client/AutoSign" \
  -H "Content-Type: application/json" \
  -d '{"userId":"xxx","signToken":"xxx","data":"Hello World"}'

项目结构

CA-Platform-Linker/
├── Controllers/
│   └── ClientController.cs          # 客户端控制器
├── Models/
│   ├── Coss/
│   │   └── CossModels.cs            # CA服务模型
│   └── DTO/
│       └── ClientDto.cs             # 客户端DTO
├── Services/
│   ├── Interfaces/
│   │   └── IClientService.cs        # 客户端服务接口
│   └── ClientService.cs             # 客户端服务实现
├── Tools/
│   ├── CossHelper.cs                # CA服务帮助类
│   ├── ConfigHelper.cs              # 配置帮助类
│   └── MySecurity.cs               # 安全类
└── appsettings.json                 # 配置文件

注意事项

  1. 所有接口都使用POST方法
  2. 请求和响应都使用JSON格式
  3. 签名数据会自动进行Base64编码
  4. 需要正确配置CA服务的连接参数
  5. 建议在生产环境中使用HTTPS协议

错误处理

所有接口都包含错误处理,当请求失败时会返回错误信息:

{
  "success": false,
  "message": "错误描述"
}

日志

使用NLog进行日志记录,日志文件位于 logs/ 目录下:

  • logs/info/ - 信息日志
  • logs/error/ - 错误日志
  • logs/debug/ - 调试日志