我的目标是测试某个根证书颁发机构是否受到活动用户的信任。我目前有一个可行的解决方案,我设法使用其他几个答案1、2拼凑起来,但这对我来说似乎很复杂,所以我要求那些(不像我)的人提供替代(或至少简化)建议知道他们在做什么。
我假设这将由非特权用户(即无法安装新软件包的用户)执行,所以我想使用可能与大多数 unix/linux 发行版捆绑在一起的实用程序(不像 eg certutil
)。出于这个原因,当前的解决方案使用awk
,grep
和openssl
,这似乎很普遍。
我应该注意的另一件事是,我不关心以我的方式测试证书可能产生的安全隐患。
这是我当前的代码:
awk -v cmd='openssl x509 -noout -issuer' '/BEGIN/{close(cmd)};{print | cmd}'
< /etc/ssl/certs/ca-certificates.crt
| grep -F 'issuer=C = US, O = company, CN = localhost, OU = engineering'
它awk
与 结合使用openssl
来遍历所有现有证书,输出它们Issuer
,然后通过管道将其 grep
用于测试所需的行是否存在。
在肯定匹配的情况下,我得到的输出是我正在寻找的字符串,即使我只需要一个二进制答案(true
/ false
,yes
/ no
,1
/ 0
,...)。
关于如何以更简单和/或更通用的方式实现我的目标的任何建议?