栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

针对Java中的CA验证X.509证书

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

针对Java中的CA验证X.509证书

我假设您的CA的自签名证书已按以下方式加载:

CertificateFactory cf = CertificateFactory.getInstance("X.509");   FileInputStream finStream = new FileInputStream("CACertificate.pem"); X509Certificate caCertificate = (X509Certificate)cf.generateCertificate(finStream);

然后在检查证书的方法中:

@Override         public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType)  throws CertificateException { if (certs == null || certs.length == 0) {        throw new IllegalArgumentException("null or zero-length certificate chain");   } if (authType == null || authType.length() == 0) {   throw new IllegalArgumentException("null or zero-length authentication type");    }   //Check if certificate send is your CA's    if(!certs[0].equals(caCertificate)){         try         {   //Not your CA's. Check if it has been signed by your CA  certs[0].verify(caCertificate.getPublicKey())         }         catch(Exception e){      throw new CertificateException("Certificate not trusted",e);         }    }    //If we end here certificate is trusted. Check if it has expired.       try{          certs[0].checkValidity();      }      catch(Exception e){ throw new CertificateException("Certificate not trusted. It has expired",e);      }  }

免责声明: 甚至没有尝试编译代码



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/428060.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号