OpenSSL双向证书

229 阅读1分钟

时间戳鉴权加密方式

加密密钥: 123456 (存在本地加密)

加密方式: AES

模式: CBC

填充补全码: Pkcs7

密文编码: Base64

iv偏移量: 123456 (跟密钥相同)

token请求头字段名: Access-Token

加密流程

  1. 获取服务器当前时间时间戳

  2. 时间戳转成字节数组

  3. 分组密钥

  4. 获取密钥块长度,利用需要加密的内容的字节数组+密钥块长度 Pkcs7方式生成补全码

  5. 利用 分组密钥+iv偏移量 创建CBC加密模式

  6. 创建补全码长度的 字节数组用于待会儿保存加密后字节数组

  7. 利用补全码进行CBC加密,加密字节保存到上方创建的字节数组中

  8. 对字节数组密文进行base64编码,将该字符串存入请求头(Headers)的Access-Token中

例:

  1. 生成根证书私钥 root-key.key

  2. 生成根证书请求文件 根据root-key.key -> root-req.csr

  3. 自签根证书 根据root-req.csr、root-key.key -> root-cert.cer (设置过期时间365)

  4. 生成p12格式根证书 根据root-cert.cer、root-key.key -> root.p12

  5. 生成服务端证书私钥 server-key.key

  6. 生成服务端证书请求文件 根据server-key.key -> server-req.csr (绑定服务端域名)

  7. 生成服务端证书 (root证书(root-cert.cer)、rootKey(root-key.key)、服务端Key(server-key.key)、服务端请求文件(server-req.csr),用这4个文件生成服务端证书) -> server-cert.cer

  8. 生成客户端证书私钥 client-key.key

  9. 生成客户端证书请求文件 根据client-key.key -> client-req.csr

  10. 生成客户端证书 (root证书(root-cert.cer)、rootKey(root-key.key)、客户端Key(client-key.key)、客户端请求文件(client-req.csr), 用这4个文件生成客户端证书) -> client-cert.cer

  11. 生成客户端p12格式根证书 根据client-cert.cer、client-key.key -> client.p12