我想知道从 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 次 |
| 最近记录: |