Ответ 1
Вы создали закрытый (и связанный с ним общедоступный) ключ в хранилище ключей. Для того, чтобы это было действительно полезно, вы можете получить его, подписанное сертификационным агентством (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
, чтобы узнать, какой псевдоним искать, затем вызовите эту программу с паролями и параметрами. В случае записи секретного ключа он показывает сам ключ и, кроме того, самозаверяющий сертификат, содержащий открытый ключ, в читаемой форме. В случае "доверенного сертификата" он показывает только открытый ключ.