【Java】 Javaで、キーストアファイルをロードし、一覧表示する

はじめに

 * Javaプログラムで、キーストアファイルをロードし、一覧表示する

Java API

Certificate

https://docs.oracle.com/javase/jp/8/docs/api/java/security/cert/Certificate.html

KeyStore

https://docs.oracle.com/javase/jp/8/docs/api/java/security/KeyStore.html
deleteEntry
 * 指定された別名によって識別されるエントリを削除
setCertificateEntry
 * 指定された別名に、指定された信頼できる証明書を割り当てる

X509Certificate

https://docs.oracle.com/javase/jp/8/docs/api/java/security/cert/X509Certificate.html

サンプル

* キーストアのエイリアスと期限日を一覧表示する
import java.io.FileInputStream;
import java.security.KeyStore;
import java.security.cert.Certificate;
import java.util.Enumeration;

import java.security.cert.X509Certificate;

public class KeyStoreLoader {
  public static void main(String[] args) {
    char[] keyPasswords = "changeit".toCharArray();
    try (FileInputStream fileInputStream = new FileInputStream("./etc/client.keystore")) {
      KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());
      keystore.load(fileInputStream, keyPasswords);
      Enumeration<String> aliases = keystore.aliases();
      while (aliases.hasMoreElements()) {
        String alias = aliases.nextElement();
        Certificate certificate = keystore.getCertificate(alias);
        if (certificate.getType().equals("X.509")) {
          X509Certificate x509Certificate = (X509Certificate) certificate;
          System.out.println(alias + " expires " + x509Certificate.getNotAfter());
        }
      }
      System.out.println("Done...");
    } catch (Exception ex) {
      ex.printStackTrace();
    }
  }
}

出力結果

tomcat expires Thu Nov 19 00:49:36 JST 2026
Done...


関連記事

Webサービス / Metro [8] ~ SSL通信を行う (2) / クライアントサイド ~

https://blogs.yahoo.co.jp/dk521123/36528991.html

Javaオブジェクト「X509Certificate」 ⇔ 証明書ファイル 変換処理

https://blogs.yahoo.co.jp/dk521123/36989612.html

Java】 Keytool コマンド

https://blogs.yahoo.co.jp/dk521123/36518468.html