Existe-t-il un moyen dans keytool d'imprimer la clé publique d'un certificat? J'ai essayé:
keytool -printcert -file client.crt
Mais il ne donne que les informations suivantes:
Owner: CN=client, OU=as, O=as, L=as, ST=as, C=as
Issuer: EMAILADDRESS=as, CN=ca, OU=as, O=as, L=as, ST=as, C=as
Serial number: 3
Valid from: Tue Apr 10 12:18:47 GMT+05:30 2012 until: Wed Apr 10 12:18:47 GMT+05
:30 2013
Certificate fingerprints:
MD5: 26:C0:29:E9:8C:AB:C3:9E:95:38:74:8A:87:D3:86:8D
SHA1: 5C:5A:BA:47:44:83:7E:CB:48:BE:DD:E5:39:51:24:42:C6:C5:60:8B
SHA256: DA:26:B8:C8:F4:04:3E:62:F3:7F:3B:EC:1D:9F:85:66:28:00:45:55:66:
15:FF:BB:37:77:97:59:F0:EC:0B:B6
Signature algorithm name: SHA1withRSA
Version: 1
Il n'y a pas de clé publique là-dedans.
Vous pouvez le faire avec openssl
.
Si ce certificat est codé DER (binaire), utilisez:
openssl x509 -inform der -in client.crt -pubkey -noout
pour une utilisation codée PEM -inform pem
option (ou pas -inform
du tout).
Pour voir les détails de la clé publique, utilisez:
openssl x509 -inform der -in client.crt -pubkey -noout | openssl rsa -pubin -text -noout
Vous pouvez le faire avec:
keytool -list -rfc -keystore mykeystore.jks -alias certificate_alias -storepass password
Exemple d'exécution:
PS c:\sample> keytool -list -rfc -keystore mykeystore.jks -alias cert_alias -storepass password
Alias name: cert_alias
Creation date: Apr 25, 2014
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
-----BEGIN CERTIFICATE-----
MIIB4zCCAUygAwIBAgIIRzI14w7rL20wDQYJKoZIhvcNAQENBQAwMzELMAkGA1UEBhMCVVMxDTAL
BgNVBAoTBE5vbmUxFTATBgNVBAMTDE5vbmUgb3U9Tm9uZTAgFw0xNDA0MjQxNzQ0NDJaGA8yMTE0
MDQyNTE3NDQ0MlowMzELMAkGA1UEBhMCVVMxDTALBgNVBAoTBE5vbmUxFTATBgNVBAMTDE5vbmUg
b3U9Tm9uZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAivXBBtFnJTm1NbHysv3Mnpn/lCg6
1onJDxr/jkvI8+1Bljs1jktyYOeKDWxJwpDU7QyIqttgtDvRT4Yaew5WiQyADIyY0cBTvp3S7uKx
M5C3zxZdG6WTflU7xcYnGk3/d0VhwA6BL9YPsRaS/K+ww1yvxWKIOPW68wDe0ccvGWcCAwEAATAN
BgkqhkiG9w0BAQ0FAAOBgQB/5qDMA9fmlCWlOD9aHjBD6I8zAOSshMCFK8XcZJHowag8WtZyL3DR
insx2HoDlBewIJAEtAplo2NpeFyNtK93PS7zV+vwEYHCu46Db3klMksp3MmSXD39QPlmwfsGZlja
K8Ww0TsR5GtccFMH41KKa+PlvVZNEdZumdrca59olQ==
-----END CERTIFICATE-----
Vous pouvez imprimer le certificat au format pem, puis utiliser openssl pour imprimer la clé publique à partir du format pem.
ajouter -rfc
option pour -printcert
keytool -printcert -rfc -file client.crt
enregistrer la sortie comme ci-dessous dans un fichier client.pem
----- COMMENCER LE CERTIFICAT ----- MIIB4zCCAUygAwIBAgIIRzI14w7rL20wDQYJKoZIhvcNAQENBQAwMzELMAkGA1UEBhMCVVMxDTAL
......
----- CERTIFICAT FINAL -----
puis utilisez openssl
openssl x509 -inform pem -text -in client.pem
vous avez donc la clé publique
Keytool list rfc affiche simplement la version encodée en base64 du certificat entier, pas la clé publique. Keytool ne prend pas en charge l'impression de la clé publique du certificat. Nous pouvons utiliser openssl à cet effet.