Je voudrais de l'aide avec la commande openssl. J'ai besoin d'automatiser la récupération de la ligne subject = dans un certificat pkcs12 pour un script sur lequel je travaille.
J'ai utilisé openssl pour afficher le contenu de l'identité/du certificat:
openssl pkcs12 -info -in /Users/[user]/Desktop/ID.pfx
Mais je suis invité à trois reprises pour le mot de passe. J'ai utilisé -passin pour éliminer l'une des invites de mot de passe, mais je suis toujours invité à saisir la phrase de passe PEM et l'entrée de vérification.
Je dois trouver un moyen de transmettre $ {mot de passe} aux deux autres défis de mot de passe ou demander au script d'émettre un ctl-c. L'information dont j'ai besoin est envoyée à la sortie standard avant la deuxième invite de mot de passe.
Toute aide serait appréciée!
Évidemment, j'ai vidé la sortie du certificat pour ce post .... mais vous devriez avoir une idée de ce que je vois:
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#
Essaye ça:
$ openssl pkcs12 -in ~/cert.p12 -nodes \
-passin pass:"my password" | openssl x509 -noout -subject
Ou ceci pour le nom commun (Ruby pour supprimer les espaces de fin):
$ openssl pkcs12 -in ~/cert.p12 -nodes \
-passin pass:"my password" | openssl x509 -noout -subject \
| awk -F'[=/]' '{print $6}'`.strip`
Copiez la réponse ici afin de supprimer cette question du filtre "Sans réponse":
openssl pkcs12 -nokeys -in /Users/[User]/Desktop/ID.pfx -passin pass:${password}
Vous pouvez également utiliser -passin
et -passout
qui ne vous inviterait pas à nouveau pour la saisie manuelle. Voici un exemple de code:
openssl pkcs12 -in seldpush_dev.p12 -passin pass:$password -passout pass:$password | \
sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | \
openssl x509 -subject -noout
Fondamentalement, utilisez -keyword
pour récupérer cette valeur. Dans ton cas, -subject
.
C'est en retard de quelques années; Je ne connais pas openssl, & etc; mais comme je ne vois aucune référence à "-nokeys", je donnerai ce qui fonctionne pour moi.
echo -e "$password\n$passphrase\n$passphrase\n" \
| openssl pkcs12 -in /Users/[user]/Desktop/ID.pfx -passin stdin -passout stdin
de la page de manuel
stdin read the password from standard input.