2012-04-11 12 views
17

keytoolに証明書の公開キーを印刷する方法はありますか?私が試した:keytoolを使用して証明書の公開鍵を印刷する方法は?

keytool -printcert -file client.crt 

しかし、それだけで以下の情報を提供します:

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 

何の公開鍵が、この中ではありませんが。

+1

これを行うには、keytoolを-listオプションで使用する方法がありますが、受け入れられた答えにはopensslを使用するように指示されています。以下のVlad Sankinの回答を参照してください。答えのために – Nishanthan

答えて

21

opensslでこれを行うことができます。

この証明書は、(バイナリ)、使用DERエンコードされている場合:

openssl x509 -inform der -in client.crt -pubkey -noout 

PEMエンコードされた使用のため-inform pemオプション(又は全く-inform)。

は、公開鍵の詳細を表示するに使用します。

openssl x509 -inform der -in client.crt -pubkey -noout | openssl rsa -pubin -text -noout 
+1

ありがとう。私は公開鍵を見ることができます。しかし、keytoolでそれを行う方法はありますか? – Ashwin

+0

'keytool -help'をすばやく見て - ...私はそうは思わない... –

+0

印刷するには、-listオプションを指定してkeeytoolを使用する方法があります。@ Vlad Sankin – Nishanthan

29

あなたはでそれを行うことができます。

keytool -list -rfc -keystore mykeystore.jks -alias certificate_alias -storepass password 

例を実行します。

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----- 
+0

からの回答を参照してください。実際の質問(keytoolを使用して公開鍵部分を印刷する方法)に答えることができます。 –

+2

元の質問でkeytoolを使用した場合は+1 – BigMikeW

+7

質問は、証明書の公開鍵の印刷方法を尋ねました。この出力は、証明書全体のPEMでエンコードされた表現です。公開鍵の出力は '----- BEGIN PUBLIC KEY -----'で始まります。 –

6

KeytoolのリストRFCだけでプリントをbase64符号化公開鍵ではなく、証明書全体の10バージョンです。 Keytoolは証明書の公開鍵の印刷をサポートしていません。この目的のためにopensslを使用することができます。

4

certをpem形式で印刷し、次にopensslを使用してpem形式から公開鍵を印刷することができます。

  1. が-printcertする-rfcオプションを追加

    のkeytool -printcert -file -rfc client.crt

  2. ファイルにclient.pem

    に以下のような出力を保存--- --BEGIN CERTIFICATE ----- MIIB4zCCAUygAwIBAgIIRzI14w7rL20wDQYJKoZIhvcNAQENBQAwMzELMAkGA1UEBhMCVVMxDTAL

    .. ....

    ----- ENDのCERTIFICATE -----

  3. は、次に使用のOpenSSL

    のOpenSSL X509 -inform PEM -text -inにclient.pem

公開鍵を取得しました

+5

中間ファイルを使用しない場合:keytool -list -rfc -keystore ./path_to_keystore.jks | openssl x509 -inform pem -pubkey –

+0

@JonasAndersson最高の答えは、コメントとしてのイベントです。 – fgakk

関連する問題