Commandes Jarsigner
En savoir plus sur les commandes Jarsigner pour le fournisseur JCE pour KMS dédié.
Lorsque vous utilisez les commandes Jarsigner dans cette rubrique, assurez-vous d'utiliser les indicateurs de commande décrits dans Prérequis pour Keytool et Jarsigner.
Signature d'un fichier JAR avec une clé
Cette opération signe un fichier JAR avec une clé. La commande est exécutée à l'aide de jarsigner avec JCE.
Syntaxe des commandes :
jarsigner \
-J-cp -J<dedicated_kms_jce_jar_path> \
-J-Djava.security.properties=<java_security_override_file>
-keystore <local-keystore-name>.dkms -storepass <example-password> -storetype DKKS -keypass <example-password> \
-signedjar <signed-jar-name> \
-digestalg <digest-algorithm> -sigalg <signature-algorithm> -certs <jar-to-be-signed>
<hsm-key-alias>
Si vous recevez un message d'avertissement indiquant "The signer's certificate chain is invalid. Reason: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested targeThe signer's certificate chain is invalid", le fichier de clés local n'a pas de certificat signé.
Vous pouvez résoudre une erreur de chaîne de certificat à l'aide des opérations suivantes :
-
Utilisez le programme keytool pour générer une CSR correspondant à la clé sur le HSM.
keytool \ -J-cp -J<dedicated_kms_jce_jar_path> \ -certreq \ -alias <example-alias> \ -file <CSR-stored-file>.csr \ -keyalg <key-algorithm> -keysize <key-size> -sigalg <signature-algorithm> \ -dname <example-distinguished-name> \ -keypass <example-password> -keystore <keystore-name> -storepass <example-password> -storetype DKKS \Remarques :
-
-certreqest utilisé pour générer une CSR. -
-aliasindique l'alias de la clé indiquée. En spécifiant cet alias, si la clé n'existe pas dans le fichier de clés, le fichier de clés DKKS recherche dans le HSM une étiquette correspondant à cet alias. -
-keyalg rsa -keysize 4096indique l'algorithme et la taille de clé de la paire de clés. -
-sigalg sha512withrsa -dnamefournit les détails de la CSR
-
-
Utilisez openssl pour créer un nouveau certificat local ca X.509 autosigné (fichier .crt) et une clé privée RSA (fichier .pem).
openssl req -x509 -newkey rsa:4096 -sha512 -nodes \ -out <local-ca-crt>.crt \ -outform pem -keyout <local-ca-pem>.pem \ -subj /C=US/ST=CA/L=SanJose/O=ExampleCA/OU=Signing/CN=exampleca.com -
Insérez le certificat du propriétaire de l'autorité de certification dans le fichier de clés.
keytool \ -J-cp -J<dedicated_kms_jce_jar_path> \ -importcert -noprompt \ -alias <local-ca-cert-alias> \ -file <local-ca-crt>.crt \ -keypass <example-password> -keystore <keystore-name>.dkms -storepass <example-password> -storetype DKKS \Remarques
-
-importcertpermet d'importer un certificat. -
-nopromptindique au programme de ne pas utiliser d'invites. -
-aliasindique l'alias auquel le certificat d'autorité de certification sera affecté. -
-fileest le fichier du certificat. -
-keypassdéfinit un mot de passe pour la clé
-
-
Répertoriez le certificat pour vous assurer que le certificat ca local se trouve dans le fichier de clés :
keytool \ -J-cp -J<dedicated_kms_jce_jar_path> \ -list \ -alias <local-ca-cert-alias> \ -keypass <example-password> -keystore <keystore-name> -storepass <example-password> -storetype DKKS \La commande renvoie une sortie similaire à la suivante :
Your keystore contains 1 entry -
A l'aide de openssl, créez un certificat X.509 avec la CSR générée et le Crt ca local. Définissez ensuite le numéro de série du nouveau certificat :
openssl x509 -req -days 365 \ -in <CSR-stored-file>.csr \ -CA <local-ca-crt>.crt \ -CAkey <local-ca-pem>.pem \ -set_serial <example-serial-number> \ -out <output-crt>.crt -
A l'aide de keytool, importez le fichier <output-crt>.crt dans le fichier de clés :
keytool \ -J-cp -J<dedicated_kms_jce_jar_path> \ -importcert -noprompt \ -alias <output-crt-alias> \ -file <output-crt>.crt \ -keypass <example-password> -keystore <keystore-name> -storepass <example-password> -storetype DKKS \ -
Vérifiez que le certificat a été importé :
keytool \ -J-cp -J<dedicated_kms_jce_jar_path> \ -list \ -alias <output-crt-alias> \ -keypass <example-password> -keystore <keystore-name> -storepass <example-password> -storetype DKKS \Le programme renvoie une sortie semblable à la suivante :
Your keystore contains 1 entry
La signature d'un fichier JAR avec une nouvelle clé garantit que l'opération de signature ne génère pas d'erreur de chaîne de certificats, car le certificat de la nouvelle clé est ajouté au fichier de clés local lors de sa création. Utilisez les instructions de la section Generate Key Pair pour créer une clé avec keytool.
Vérifier les détails de signature des fichiers JAR
Utilisez l'indicateur -verify pour vérifier les détails de signature d'un fichier JAR signé, y compris la clé utilisée pour signer le fichier. La commande est exécutée à l'aide de jarsigner avec JCE.
Syntaxe des commandes :
jarsigner \
-J-cp -J<dedicated_kms_jce_jar_path> \
-verify \
-keystore <local_keystore><local-keystore-name>.dkms -storepass <example-password> -storetype DKKS -keypass <example-password> \
-certs <signed-jar-name>
<example-key-alias>