Network/SSL/秘密鍵の抽出
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
// 下階層用テンプレート
#topicpath
----
//ここにコンテンツを記述します。
IBMのHTTPServer(IHS)では、SSL構築にはikeymanという鍵DBを...
いろいろ調べてみると、[[keytoolで作成した秘密鍵のexport -...
流れとしては、
-ikeymanでKDBをJKSに保存
-JavaプログラムでJKSから秘密鍵をバイナリで抽出
-opensslのコマンドでBase64のテキストファイルに変換
でできそうです。
***Javaプログラム [#hde404c1]
以下のようなプログラムで、バイナリの秘密鍵が抽出できます。
public class KeyGenerator {
public static void main(String[] args) throws Exceptio...
String alias = "hoge"; // 鍵DB内の別名
String keyStorePass = "fuga"; // 鍵DBのパスワード
String jksFile = "key.jks"; // 鍵DBのファイル名
KeyStore keyStore = KeyStore.getInstance("JKS");
FileInputStream in = new FileInputStream(jksFile);
keyStore.load(in, keyStorePass.toCharArray());
Key key = keyStore.getKey(alias, keyStorePass.toChar...
byte[] der = key.getEncoded(); // バイナリの秘密鍵
write(der); // 秘密鍵をファイル保存
}
public static void write(byte[] b) {
BufferedOutputStream stream = null;
try {
File file = new File("key.der");
FileOutputStream fstream = new FileOutputStream(fi...
stream = new BufferedOutputStream(fstream);
stream.write(b);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (stream != null) {
try {
stream.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
}
}
***OpenSSLのコマンドでBase64に変換する [#pc9c5957]
openssl pkcs8 -inform der -in key.der -outform pem -out ...
key.pemが抽出されました。実際見てみると
-----BEGIN RSA PRIVATE KEY-----
hogehogehoge.....
-----END RSA PRIVATE KEY-----
確かに秘密鍵が抽出できました!
***ちなみに [#iebce8e8]
./keytool.exe -export -alias hoge -keystore key.jks -r...
pass: fuga
で証明書((公開鍵と、公開鍵のハッシュ値をCAの秘密鍵で暗号...
**関連リンク [#b47e9c7c]
-[[OpenSSLを使った証明書取り扱いプログラミング>http://mar...
-http://java.sun.com/javase/ja/6/docs/ja/api/java/securit...
-[[CA2>http://www.wizard-limit.net/tools/ca2.html]]
-[[keytoolで作成した秘密鍵のexport - Security & Trust>htt...
----
この記事は
#vote(おもしろかった[6],そうでもない[0])
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}
終了行:
// 下階層用テンプレート
#topicpath
----
//ここにコンテンツを記述します。
IBMのHTTPServer(IHS)では、SSL構築にはikeymanという鍵DBを...
いろいろ調べてみると、[[keytoolで作成した秘密鍵のexport -...
流れとしては、
-ikeymanでKDBをJKSに保存
-JavaプログラムでJKSから秘密鍵をバイナリで抽出
-opensslのコマンドでBase64のテキストファイルに変換
でできそうです。
***Javaプログラム [#hde404c1]
以下のようなプログラムで、バイナリの秘密鍵が抽出できます。
public class KeyGenerator {
public static void main(String[] args) throws Exceptio...
String alias = "hoge"; // 鍵DB内の別名
String keyStorePass = "fuga"; // 鍵DBのパスワード
String jksFile = "key.jks"; // 鍵DBのファイル名
KeyStore keyStore = KeyStore.getInstance("JKS");
FileInputStream in = new FileInputStream(jksFile);
keyStore.load(in, keyStorePass.toCharArray());
Key key = keyStore.getKey(alias, keyStorePass.toChar...
byte[] der = key.getEncoded(); // バイナリの秘密鍵
write(der); // 秘密鍵をファイル保存
}
public static void write(byte[] b) {
BufferedOutputStream stream = null;
try {
File file = new File("key.der");
FileOutputStream fstream = new FileOutputStream(fi...
stream = new BufferedOutputStream(fstream);
stream.write(b);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (stream != null) {
try {
stream.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
}
}
***OpenSSLのコマンドでBase64に変換する [#pc9c5957]
openssl pkcs8 -inform der -in key.der -outform pem -out ...
key.pemが抽出されました。実際見てみると
-----BEGIN RSA PRIVATE KEY-----
hogehogehoge.....
-----END RSA PRIVATE KEY-----
確かに秘密鍵が抽出できました!
***ちなみに [#iebce8e8]
./keytool.exe -export -alias hoge -keystore key.jks -r...
pass: fuga
で証明書((公開鍵と、公開鍵のハッシュ値をCAの秘密鍵で暗号...
**関連リンク [#b47e9c7c]
-[[OpenSSLを使った証明書取り扱いプログラミング>http://mar...
-http://java.sun.com/javase/ja/6/docs/ja/api/java/securit...
-[[CA2>http://www.wizard-limit.net/tools/ca2.html]]
-[[keytoolで作成した秘密鍵のexport - Security & Trust>htt...
----
この記事は
#vote(おもしろかった[6],そうでもない[0])
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}
ページ名: