Java code to display expiration date of certificates in a Java KeyStore

Viewed 11707

Looking for java code to display expiration date of certificates in a given keystore.

What i am expecting is below output after running the java code:

CerticateName: CertificateExpirationDate: NumberOfDaysLeft:

Update

I have come up with the code below, Which print certificate alias, I am interested in Expriation date

import java.io.FileInputStream;
import java.security.KeyStore;
import java.util.Enumeration;

public class sslcertslist {
  public static void main(String[] argv) throws Exception {
    FileInputStream is = new FileInputStream("MyKeystore.jks");
    KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());
    String password = "MyPassword";
    keystore.load(is, password.toCharArray());

    Enumeration e = keystore.aliases();
    for (; e.hasMoreElements();) {
      String alias = (String) e.nextElement();

      boolean b = keystore.isKeyEntry(alias);

      b = keystore.isCertificateEntry(alias);
      System.out.println(alias);
    }
    is.close();
  }
}
2 Answers

Just to add another solution

public static Date getSimpleCertExpiryDate(String pfxFileName, String pfxPassword) throws KeyStoreException,
        NoSuchAlgorithmException, CertificateException, FileNotFoundException, IOException {

    KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());
    keystore.load(new FileInputStream(pfxFileName), pfxPassword.toCharArray());
    Enumeration<?> aliases = keystore.aliases();
    Date expiryDate = null;

    for (; aliases.hasMoreElements();) {
        String alias = (String) aliases.nextElement();
        expiryDate = ((X509Certificate) keystore.getCertificate(alias)).getNotAfter();
    }
    return expiryDate;
}

Output be Expiry Date (e.g.) as Tue Mar 16 11:03:25 IST 2021 You can use this to check against today's date

Related