Openssl
如何從 SSL 證書中提取序列號
我想知道從 PEM 格式的 SSL 證書中提取序列號的最佳方法是什麼。
之後,我想以以下格式格式化證書,
hexhex:hexhex:...:hexhex
例如,如果我的 SSL 證書的十六進制序列號是0123456709AB
輸出應該是
01:23:45:67:09:AB
出於偏好,我想使用帶有 x509 選項的 openssl 使用單行 UNIX 命令來完成此操作
嘗試:
openssl x509 -noout -serial -in cert.pem | cut -d'=' -f2 | sed 's/../&:/g;s/:$//'
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/:$//'
s/.*=//g
在命令開頭的添加sed
替換了cut
第一個版本中的。