I généré 3 clés/certificats à l'aide de ce script:Décrypter certificat OpenSSL
#!/bin/sh
AUTH='/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/[email protected]'
if [ "$1" == "" ]; then
echo "Create a test certificate key."
echo "Usage: $0 NAME"
echo "Will generate NAME.pk8 and NAME.x509.pem"
echo " $AUTH"
exit
fi
openssl genrsa -3 -out $1.pem 2048
openssl req -new -x509 -key $1.pem -out $1.x509.pem -days 10000 \
-subj "$AUTH"
echo "Please enter the password for this key:"
openssl pkcs8 -in $1.pem -topk8 -outform DER -out $1.pk8 -passout stdin
La sortie est:
releasekey.pem
releasekey.pk8
releasekey.x509.pem
Je suis en train de le décrypter en utilisant cette commande:
openssl pkcs8 -in ~/.android-certs/releasekey.pk8 -inform DER
Ainsi, la sortie est
alex-garmas-osx:android alex-garmash$ openssl pkcs8 -in ~/.android-
certs/releasekey.pk8 -inform DER
Enter Password:
-----BEGIN PRIVATE KEY-----
CONTENT OF PRIVATE KEY HERE
-----END PRIVATE KEY-----
Et cela fonctionne bien. releasekey.pk8
ne dispose pas d'un mot de passe
Quand je fais la même chose avec la commande:
openssl pkcs8 -in ~/.android-certs/releasekey.pk8 -inform DER -nocrypt
je une erreur:
140735885419528:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1200:
140735885419528:error:0D06C03A:asn1 encoding routines:ASN1_D2I_EX_PRIMITIVE:nested asn1 error:tasn_dec.c:768:
140735885419528:error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error:tasn_dec.c:700:Field=version, Type=PKCS8_PRIV_KEY_INFO
Dans le documentation je vois que je peux utiliser l'option -nocrypt
, mais pourquoi échoue-t-il?
MISE À JOUR
Un grand merci à @bartonjs pour l'explication. Pour résoudre ce problème, vous devez ajouter -nocrypt drapeau à la dernière commande du script, vous pouvez utiliser la commande ci-dessus pour décrypter la clé générée
#!/bin/sh
AUTH='/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/[email protected]'
if [ "$1" == "" ]; then
echo "Create a test certificate key."
echo "Usage: $0 NAME"
echo "Will generate NAME.pk8 and NAME.x509.pem"
echo " $AUTH"
exit
fi
openssl genrsa -3 -out $1.pem 2048
openssl req -new -x509 -key $1.pem -out $1.x509.pem -days 10000 \
-subj "$AUTH"
echo "Please enter the password for this key:"
openssl pkcs8 -in $1.pem -topk8 -outform DER -out $1.pk8 -passout stdin -nocrypt
De la documentation '-nocrypt' _Avec cette option, une structure PrivateKeyInfo non cryptée est attendue ou output._ mais' releasekey.pk8' est cryptée avec un mot de passe. n'est-ce pas? – pedrofb
@pedrofb sans. J'ai écrit ci-dessus: "releasekey.pk8 n'a pas de mot de passe" passphrase = mot de passe. Il est vide – Alexander