当前位置:   article > 正文

Java查看https证书过期时间(JKS,CERT)_查看jks证书的有效期

查看jks证书的有效期

在这里需要使用X.509 证书的抽象类 X509Certificate 。此类提供了一种访问 X.509 证书所有属性的标准方式。

这些证书被广泛使用以支持 Internet 安全系统中的身份验证和其他功能。常见的应用包括增强保密邮件 (PEM)、传输层安全 (SSL)、用于受信任软件发布的代码签名和安全电子交易 (SET)。

由证书颁发机构 (CA) 来管理和担保这些证书。CA 的工作是创建证书,方法是将数据置于 X.509 标准格式,然后以数字方式签署该数据。CA 充当受信任的第三方,在不能直接通信的主体之间传递信息。CA 证书可由其自身签名,也可由其他 CA 签名,如“根”CA。

  1. import java.io.FileInputStream;
  2. import java.io.InputStream;
  3. import java.security.KeyStore;
  4. import java.security.cert.Certificate;
  5. import java.security.cert.CertificateFactory;
  6. import java.security.cert.X509Certificate;
  7. import java.text.SimpleDateFormat;
  8. import java.util.Date;
  9. public class CertificateExpiration {
  10. public static void main(String[] args) {
  11. SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
  12. String jksFilePath = "path/to/your.jks";
  13. String jksPassword = "your_jks_password";
  14. String alias = "your_certificate_alias";
  15. X509Certificate x509Certificate = JksCertificateExpiration(jksFilePath, jksPassword, alias);
  16. // 获取证书的颁发日期
  17. Date notBefore = x509Certificate.getNotBefore();
  18. // 获取证书的截止日期
  19. Date notAfter = x509Certificate.getNotAfter();
  20. // 获取证书的版本号
  21. int version = x509Certificate.getVersion();
  22. // 获取证书的主体(主体标识名)值
  23. String name = x509Certificate.getSubjectX500Principal().getName();
  24. System.out.println("jks颁发日期:" + ft.format(notBefore));
  25. System.out.println("jks截止日期:" + ft.format(notAfter));
  26. System.out.println("jks版本号:" + version);
  27. System.out.println("jks主体值:" + name);
  28. }
  29. /**
  30. * @param certFilePath cert证书路径
  31. * @return X.509 证书所有属性
  32. */
  33. public static X509Certificate CertCertificateExpiration(String certFilePath) {
  34. try (InputStream inStream = new FileInputStream(certFilePath);) {
  35. CertificateFactory cf = CertificateFactory.getInstance("X.509");
  36. return (X509Certificate) cf.generateCertificate(inStream);
  37. } catch (Exception e) {
  38. e.printStackTrace();
  39. }
  40. return null;
  41. }
  42. /**
  43. * @param jksFilePath jks证书路径
  44. * @param jksPassword jks证书密码
  45. * @param alias jks证书别名
  46. * @return X.509 证书所有属性
  47. */
  48. public static X509Certificate JksCertificateExpiration(String jksFilePath, String jksPassword, String alias) {
  49. //try-with-resources会自动关闭FileInputStream,无需手动调用close()方法
  50. try (FileInputStream fis = new FileInputStream(jksFilePath)) {
  51. //密钥和证书的存储设施
  52. KeyStore keyStore = KeyStore.getInstance("JKS");
  53. keyStore.load(fis, jksPassword.toCharArray());
  54. // 获取证书
  55. Certificate certificate = keyStore.getCertificate(alias);
  56. // 转换为X509Certificate类型
  57. return (X509Certificate) certificate;
  58. } catch (Exception e) {
  59. e.printStackTrace();
  60. }
  61. return null;
  62. }
  63. }

运行结果 

其他证书,欢迎补充!!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/732699
推荐阅读
相关标签
  

闽ICP备14008679号