Bootstrap

【工作篇】证书解析

背景

因为工作上需要对接银联、网联等通道代理,需要对通道给出的证书进行解析后使用,这里记录一下对证书的处理过程。

银联 AT 证书处理

公钥处理

证书 SN 获取

openssl x509 -in 国密新证书.cer -noout -serial

证书验签公钥处理

公钥一般都是按 16进制使用,所以需要对其进行处理、转换。

# 从证书中解析出公钥
openssl x509 -in 国密新证书.cer -pubkey -noout > new_sm2_public_key.pem

# 将 PEM 格式转换为 DER 格式
openssl ec -in new_sm2_public_key.pem -pubin -outform DER -out new_sm2_public_key.der
read EC key
writing EC key

# 使用 xxd 将 DER 文件转换为十六进制,转大写并删除换行符
xxd -p new_sm2_public_key.der | tr -d '\n' | tr 'a-f' 'A-F'
3059301306072a8648ce3d020106082a811ccf5501822d03420004***C2
# 需要注意的是,因为 3059301306072A8648CE3D020106082A811CCF5501822D034200 是 DER 格式 编码的公钥的 序列化格式。在椭圆曲线公钥中,这些前缀部分包含了关于该公钥的数据结构的元信息,而不是公钥本身。需要出去这一段 04***C2 才是我们需要的公钥。
;