我想知道从 PEM 格式的 SSL 证书中提取序列号的最佳方法是什么。
之后,我想以以下格式格式化证书,hexhex:hexhex:...:hexhex
例如,如果我的十六进制 SSL 证书的序列号是
0123456709AB
Run Code Online (Sandbox Code Playgroud)
输出应该是
01:23:45:67:09:AB
Run Code Online (Sandbox Code Playgroud)
作为偏好,我想使用单行 UNIX 命令使用 openssl 和 x509 选项来完成此操作
尝试:
openssl x509 -noout -serial -in cert.pem | cut -d'=' -f2 | sed 's/../&:/g;s/:$//'
Run Code Online (Sandbox Code Playgroud)
openssl x509 -noout -serial -in cert.pem
将输出证书的序列号,但格式为serial=0123456709AB
.
因此,cut -d'=' -f2
它通过管道将输出拆分为等号并输出第二部分 - 0123456709AB
。
即发送到sed
. sed
命令的第一部分s/../&:/g
每两个字符 ( ..
)拆分字符串并插入一个冒号 ( :
)。这导致01:23:45:67:89:AB:
(注意末尾的冒号)。
sed
命令的第二部分( s/:$//
) 搜索输出末尾的冒号并将其替换为空字符串,从而得到所需的输出。
或为openssl
与sed
唯一的答案:
openssl x509 -noout -serial -in test2.crt | sed 's/.*=//g;s/../&:/g;s/:$//'
Run Code Online (Sandbox Code Playgroud)
s/.*=//g
在sed
命令开头添加的替换了cut
第一个版本中的 。
归档时间: |
|
查看次数: |
14136 次 |
最近记录: |