格式化“ userCertificate; binary”以进行OpenSSL处理

时间:2018-08-27 16:44:52

标签: bash openssl

目标:要查询LDAP服务器并确定证书的到期日期。

背景:我能够(通过ldapsearch)以“ userCertificate; binary”格式转储用户证书。这将产生类似于以下内容的数据:

userCertificate:: MIIABUNCHMORECHARACTERSFORCERT1

userCertificate:: MIIABUNCHMORECHARACTERSFORCERT2

(我相信)要使用OpenSSL处理上述内容,我必须按如下所示格式化输出:

文件1:

-----BEGIN CERTIFICATE-----

MIIABUNCHMORECHARACTERSFORCERT1

-----END CERTIFICATE-----

文件2:

-----BEGIN CERTIFICATE-----

MIIABUNCHMORECHARACTERSFORCERT2

-----END CERTIFICATE-----

问题:

  • 什么是脚本遍历ldapsearch结果的最佳方法,对于每个条目,删除“ userCertificate; binary”,将证书放在BEGIN / END标记之间,然后将每个条目放入一个单独的文件中进行处理?我假设可以使用“ awk”或“ sed”完成此操作。

  • 是否可以使用OpenSSL处理而不添加BEGIN / END标记或将每个条目分隔到一个新文件中?

谢谢。

1 个答案:

答案 0 :(得分:0)

cat ldap_search_results.ldi | grep userCertificate |边读边;做cert = $(echo $ line | awk -F'::''{print $ 2}'); echo -e“ ----- BEGIN CERTIFICATE ----- \ n $ {cert} \ n ----- END CERTIFICATE -----” | openssl x509-文本| grep -Ei'Subject | not after';完成