はじめに
* Javaプログラムで、キーストアファイルをロードし、一覧表示する
Java API
Certificate
https://docs.oracle.com/javase/jp/8/docs/api/java/security/cert/Certificate.htmlKeyStore
https://docs.oracle.com/javase/jp/8/docs/api/java/security/KeyStore.htmldeleteEntry
* 指定された別名によって識別されるエントリを削除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...
参考文献
https://stackoverflow.com/questions/9513257/checking-certificates-expiration-dates-in-java-keystoreのちに参考になりそうなサイト
http://d.hatena.ne.jp/stdcall/20060805/1154803961