bash - 使用 openssl 从 pkcs12 证书中提取信息

标签 bash openssl osx-lion

我需要一些关于 openssl 命令的帮助。我需要自动检索我正在处理的脚本的 pkcs12 证书中的 subject= 行。

我已经使用 openssl 查看身份/证书的内容:

openssl pkcs12 -info -in /Users/[user]/Desktop/ID.pfx

但系统提示我输入密码三次。我使用 -passin 消除了其中一个密码提示,但系统仍提示我输入 PEM 密码短语和验证条目。
我需要想办法将 ${password} 传递给其他两个密码挑战,或者让凭据发出 ctl-c。我需要的信息在第二个密码提示之前输出到标准输出。

任何帮助将不胜感激!

显然,我删除了这篇文章的证书输出....但您应该了解我所看到的内容:

bash-3.2#  openssl pkcs12 -info -in /Users/[user]/Desktop/ID.pfx -passin pass:${password}
MAC Iteration 2048
MAC verified OK
PKCS7 Encrypted data: pbeWithSHA1And40BitRC2-CBC, Iteration 2048
Certificate bag
Bag Attributes
    localKeyID: ****
    friendlyName: ****
subject=****
issuer=****
-----BEGIN CERTIFICATE-----
::HASH REMOVED::
-----END CERTIFICATE-----
PKCS7 Data
Shrouded Keybag: ****
Bag Attributes
    localKeyID: **** 
    friendlyName: ****
Key Attributes: <No Attributes>

Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: 

::HASH REMOVED::
-----END RSA PRIVATE KEY-----
bash-3.2# 

最佳答案

试试这个:

$ openssl pkcs12 -in ~/cert.p12 -nodes \
    -passin pass:"my password" | openssl x509 -noout -subject

或者通用名称(ruby 去除尾随空格):

$ openssl pkcs12 -in ~/cert.p12 -nodes \
    -passin pass:"my password" | openssl x509 -noout -subject \
    | awk -F'[=/]' '{print $6}'`.strip`

关于bash - 使用 openssl 从 pkcs12 证书中提取信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8500475/

相关文章:

cocoa - 如何通过不断更新值绑定(bind)选项来防止连续 autosaveInPlace

linux - secret 圣诞老人有趣的狂欢

linux - 一次移动一批文件

c - 将 RSA key 从 .PEM 文件读取到 C 中的 RSA 结构

macos - 让 sudo 通过 GUI 要求输入密码

c++ - Mac OS X 上的 Emacs 24 和 GDB 6.3

bash - 检查上一个命令是否为 "valid"

linux - 使用 let 命令的多个间接变量 (GNU/Linux Bash)

c - 解密使用包含 null 的密码加密的私钥

Linux/OpenSSL :Send find output to openssl