タイプjks(つまりデフォルトタイプ)のJavaキーストアをプログラムで作成しました。
最初は空なので、DSA証明書を作成しました。
keytool -genkey -alias myCert -v -keystore trivial.keystore
公開鍵と秘密鍵を確認するにはどうすればよいですか?
つまり証明書の秘密鍵を出力するコマンドはありますか?
私が理解したところ、証明書全体を印刷するkeytool -certreq
しか見つかりませんでした。
-----BEGIN NEW CERTIFICATE REQUEST-----
MIICaTCCAicCAQAwZTELMAkGA1UEBhMCR1IxDzANBgNVBAgTBkdyZWVjZTEPMA0GA1UEBxMGQXRo
BQADLwAwLAIUQZbY/3Qq0G26fsBbWiHMbuVd3VICFE+gwtUauYiRbHh0caAtRj3qRTwl
-----END NEW CERTIFICATE REQUEST-----
これが証明書全体だと思います。 keytoolを介して秘密(または公開鍵)を表示するにはどうすればよいですか?
キーストアに秘密(および関連する公開)鍵を作成しました。本当に使えるようにするには、認証機関(CA)の署名を得ることができます-これは-certreq
コマンド(出力を他の情報と少額のお金とともにこの認証機関に送信すると、証明書が返送され、キーストアにインポートできます。)
秘密鍵の表示は意図されていません... Javaプログラムでキーストアを使用し、これはその使用方法を知っているため、通常はこれは必要ありません。
編集:キーストアを見たいので、ここでこれを行う簡単なJavaプログラム:
import Java.io.*;
import Java.security.*;
import Java.security.cert.Certificate;
public class KeyPrinter {
/**
* to be invoked with these parameters:
*
* [0]: keystore-password
* [1]: filename
* [2]: alias
* [3]: entry-Password (if necessary)
*/
public static void main(String[] params)
throws IOException, GeneralSecurityException
{
char[] storePass = params[0].toCharArray();
String fileName = params[1];
String alias = params[2];
KeyStore.ProtectionParameter entryPass;
if(params.length > 3) {
entryPass=new KeyStore.PasswordProtection(params[3].toCharArray());
} else {
entryPass = null;
}
KeyStore store = KeyStore.getInstance("JKS");
InputStream input = new FileInputStream(fileName);
store.load(input, storePass);
KeyStore.Entry entry = store.getEntry(alias, entryPass);
System.out.println(entry);
}
}
最初の呼び出しkeytool -list -keystore myStore
検索するエイリアスを確認してから、パスワードとパラメータを使用してこのプログラムを呼び出します。秘密鍵エントリの場合は、鍵自体と、公開鍵を含む自己署名証明書が読み取り可能な形式で表示されます。 「信頼できる証明書」の場合は、公開鍵のみが表示されます。
いいえ、あなたがすることはできません。
コードから秘密鍵にアクセスできますが、keytoolを使用して公開することはできません。
秘密鍵をエクスポートする必要がある場合は、 OpenSSL を使用します。
別のオプション:PKCS12形式でキーストアを生成できます。次に、それをブラウザにインポートしてから、秘密鍵をエクスポートできます。
keytool -list -v -alias myCert -storepass 123456 -keystore file.jks
または
keytool -list -rfc -alias myCert -storepass 123456 -keystore file.jks
に記載されているように
keytool -help
( Portecle )は、キーストアを管理するための非常に便利なGUIツールです。また、特に、秘密鍵とそれに関連する証明書をエクスポートするオプションがあります。
公開鍵を共有する一般的な方法は、鍵ペアの証明書を共有することです(公開鍵が内部に含まれています)
keystore-Explorer を使用できます。