簡體   English   中英

在 Java KeyStore 中顯示證書到期日期的 Java 代碼

[英]Java code to display expiration date of certificates in a Java KeyStore

尋找 Java 代碼以顯示給定密鑰庫中證書的到期日期。

運行java代碼后,我期待的是低於輸出:

證書名稱:證書到期日期:NumberOfDaysLeft:

更新

我想出了下面的代碼,哪個打印證書別名,我對到期日期感興趣

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();
  }
}
import java.io.FileInputStream;
import java.security.KeyStore;
import java.util.Enumeration;
import java.io.IOException;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.UnrecoverableEntryException;
import java.security.cert.Certificate;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.Date;
import java.text.SimpleDateFormat;
import java.util.*;

public class GetSslcertsExpires {

public static void main(String[] argv) throws Exception {

 try {
        KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());
        keystore.load(new FileInputStream("/DemoTrust.jks"), "DemoTrustKeyStorePassPhrase".toCharArray());
        Enumeration aliases = keystore.aliases();
        for(; aliases.hasMoreElements();) {
            String alias = (String) aliases.nextElement();
            Date certExpiryDate = ((X509Certificate) keystore.getCertificate(alias)).getNotAfter();
            SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss");
            //Tue Oct 17 06:02:22 AEST 2006
            Date today = new Date();
            long dateDiff = certExpiryDate.getTime() - today.getTime();
            long expiresIn = dateDiff / (24 * 60 * 60 * 1000);
            System.out.println("Certifiate: " + alias + "\tExpires On: " + certExpiryDate + "\tFormated Date: " + ft.format(certExpiryDate) + "\tToday's Date: " + ft.format(today) + "\tExpires In: "+ expiresIn);
        }
    }

catch (Exception e)
     {
       e.printStackTrace();
    }
  }
}
  • 樣本輸出在此處輸入圖片說明

只是為了添加另一個解決方案

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;
}

輸出截止日期(例如)為 Tue Mar 16 11:03:25 IST 2021 您可以使用它來檢查今天的日期

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM