我想使用以下命令:
openssl x509 -noout -in /etc/pki/tls/certs/cert1.pem -enddate
openssl x509 -noout -in /etc/pki/tls/certs/cert2.pem -enddate
openssl x509 -noout -in /etc/pki/tls/certs/certN.pem -enddate
有没有办法使用通配符读取所有证书?例如,
openssl x509 -noout -in /etc/pki/tls/certs/*.pem -enddate
非常感谢任何帮助。提前谢谢。
答案 0 :(得分:1)
使用shell scriptlet:
#! /bin/sh
for file in /etc/pki/tls/certs/*.pem; do
echo -n "$file: "
openssl x509 -noout -in "$file" -enddate
done
将它放在一个文件中,比如certexpires.sh
然后你可以用:
sh certexpires.sh
答案 1 :(得分:1)
我的答案就是这个命令:
ls /etc/pki/tls/certs/cert*.pem | xargs -L1 openssl x509 -noout -enddate -in
<强>解释强>
在第一步中,我列出了我要解析的证书列表。例如,就我而言,它可能是这样的:
[root@vpsfree certs]# ls -1 */*.crt
ewsport.org/ewsport.org.crt
hxpro.cz/hxpro.crt
jaguars.cz/jaguars.crt
koudelka.photography/koudelka.photography.crt
unicycle-hockey.cz/unicycle-hockey.cz.crt
unipragga.cz/unipragga.cz.crt
下一步,我想从每个人那里获得到期日期。
[root@vpsfree certs]# openssl x509 -noout -enddate -in hxpro.cz/hxpro.crt
notAfter=Apr 24 11:29:21 2017 GMT
现在我可以使用xargs将第一个命令的输出发送到第二个命令。
[root@vpsfree certs]# ls -1 */*.crt | xargs -L1 openssl x509 -noout -enddate -in
notAfter=Mar 31 15:08:20 2017 GMT
notAfter=Apr 24 11:29:21 2017 GMT
notAfter=Mar 23 21:23:42 2017 GMT
notAfter=Apr 24 11:50:32 2017 GMT
notAfter=Dec 11 16:32:41 2016 GMT
notAfter=Mar 20 19:44:17 2017 GMT
我使用了选项-L1,因为openssl命令只需要一个-in文件作为输入。
答案 2 :(得分:0)
我为我的终端创建了一个Alias,它在文件夹中的整个文件上运行它(你可以调整它只在pem扩展上运行,但这是我的改编)
alias ssl-opemu='_(){ for i in *; do openssl x509 -in $i -noout -text; done; }; _'
我几乎可以肯定我从之前的一个帖子继承了这个,所以对原主人的所有权利。 :)