Как вывести/экспортировать закрытые ключи из хранилища ключей?
Часть исходного кода из Example core-java Depot для перечисления всех java-api псевдонимов в хранилище ключей:
// Load input stream into keystore
keystore.load(is, password.toCharArray());
// List the aliases
Enumeration aliases = keystore.aliases();
for (; aliases.hasMoreElements(); ) {
String alias = (String)aliases.nextElement();
// Does alias refer to a private key?
boolean b = keystore.isKeyEntry(alias);
// Does alias refer to a trusted certificate?
b = keystore.isCertificateEntry(alias);
}
Экспорт .java закрытых ключей появился jre на Sun forums пару месяцев назад, а java u:turingcompleter придумал класс DumpPrivateKey .java для вставки в ваше приложение.
import java.io.FileInputStream;
import java.security.Key;
import java.security.KeyStore;
import sun.misc.BASE64Encoder;
public class DumpPrivateKey {
/**
* Provides the missing functionality of keytool
* that Apache needs for SSLCertificateKeyFile.
*
* @param args
* - [0] Keystore filename.
*
- [1] Keystore password.
*
- [2] alias
*
*/
static public void main(String[] args)
throws Exception {
if(args.length < 3) {
throw new IllegalArgumentException("expected args: Keystore filename, Keystore password, alias,
Примечание: используется java-libraries пакет Sun, which is a "bad thing".
Если вы можете openjdk скачать apache commons code, вот версия, которая java-libraries будет скомпилирована без openjdk предупреждения:
javac -classpath .:commons-codec-1.4/commons-codec-1.4.jar DumpPrivateKey.java
и даст тот java-api же результат:
import java.io.FileInputStream;
import java.security.Key;
import java.security.KeyStore;
//import sun.misc.BASE64Encoder;
import org.apache.commons.codec.binary.Base64;
public class DumpPrivateKey {
/**
* Provides the missing functionality of keytool
* that Apache needs for SSLCertificateKeyFile.
*
* @param args
* - [0] Keystore filename.
*
- [1] Keystore password.
*
- [2] alias
*
*/
static public void main(String[] args)
throws Exception {
if(args.length < 3) {
throw new IllegalArgumentException("expected args: Keystore filename, Keystore password, alias,
Вы можете использовать .java его так:
java -classpath .:commons-codec-1.4/commons-codec-1.4.jar DumpPrivateKey $HOME/.keystore changeit tomcat
java
ssl
keystore
Как вывести/экспортировать закрытые ключи из хранилища ключей?
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.