第六节 数字化身份-CertPath证书链.pptVIP

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第六章 数字化身份-CertPath证书链 主要内容 使用Keytool工具和JAVA程序创建并保存证书链 从证书文件、密钥库或HTTPS服务器获取证书链的CertPath 显示和保存证书链中的证书 验证证书链 使用CertStore来保存和提取证书 吊销证书 证书链 证书链本质上是一组按顺序排列的数字证书,又称为认证链、证书路径。证书链证明了证书的合法性,证书链合法,则可以相信证书中所宣称的某个主体拥有某个公钥。 例如:A的证书由B颁发,B由C颁发,C由D颁发,这样就形成了一个4个证书组成的证书链:A-B-C-D.若要验证A的证书是否值得信任,只要检验者信任B,C,D中的任一个证书即可。 密钥库中创建并保存证书链的几种方法 1、使用Keytool将已签名的数字证书导入密钥库 使用-import参数可以将数字证书导入到密钥库,主要要先导入CA的证书 (1)将第五章的密钥库lfkeystore,mytest.cer,lf.cer,lf_signed.cer拷入一个文件夹 (2)若先导入lf_signed.cer会出错,因为CA mytest还没有导入,无法建立证书链。要先导入mytest.cer (3)最后导入lf_signed.cer覆盖自签名的lf 2、使用JAVA程序将已签名的数字证书导入到密钥库 例:首先读取CA的证书mytest.cer和用户收到的签名后的证书lf_signed.cer,使用这两个证书组成证书链,然后从用户的密钥库读取私钥,最后执行KeyStore对象的SetKeyEntry()方法将私钥和证书一起写入密钥库,并用store()方法保存为文件即可。 先copy lfkeystore.bak.before.6.1.1 lfkeystore Java ImportCert 几种获取CertPath证书链的方法 CertPath类代表证书链 (1)根据证书文件生成CertPath类型的对象 例:用.cer文件生成CertPath类型的对象,并将其中所有的文件打印出来。Java GetCertPathCert lf_signed.cer mytest.cer1.txt (2)从密钥库读取证书链生成CertPath类型的对象 1)获取相关参数 2)获取KeyStore对象并加载密钥库 3)从密钥库读取数组形式的证书链 4)生成列表对象 5)创建CertPath类型的对象 例:从密钥库中逐个读取证书形成密钥链并打印出来。Java GetCertPathtKs lfkeystore2 wshr.ut lf 2.txt Java GetCertPathtKs lfkeystore newpass lf_signed3.txt (3)从HTTPS服务器获取证书链 数字证书在网络上各种HTTPS服务器上用得很多,这些服务器对应的是https://...格式的网址,一般使用443作为端口号。 编程步骤: 1)创建SSLServerSocketFactory类型的对象。 2)创建SSLSocket类型的对象。 3)和HTTPS服务器建立连接 4)获取连接的会话 5)获取证书 6)将证书数组中的内容放入列表 7)由列表对象创建CertPath类型的对象 例:GetCertPathHttps java GetCertPathHttps verisign.txt CertPath对象的证书显示和保存 (1)显示CertPath中的证书 1)获取CertPath类型的对象 2)从CertPath对象获取证书列表。 3)处理列表。 例:用.cer文件得到CertPath对象,并提取该对象中包含的证书。 Java ShowCertPath lf_signed.cer mytest.cer xxx.txt (2)保存CertPath中的证书 1)获取CertPath类型的对象 2)创建密钥库 3)获取CertPath中的证书数组 4)将CertPath中的证书写入密钥库。 5)保存密钥库 例:将CertPath对象中的证书保存到密钥库并进而导出到文件中。 运行Java StoreCert之后,将创建密钥库MyCertPathStore,可以用 Keytool –list –keystore MyCertPathStore查看密钥库的内容。 结果截图 验证CertPath证书链 (1)验证主体和签发者 例:验证证书链中各个证书的签发者和证书链中后一个证书的主体名称是否匹配。 编程步骤: 1)获取证书数组 2)遍历证书数组 3)比较 Java ValiSubIssu my0.cer my1.cer my2.cer (2)验证签名 例:验证证书链中各个证书的签名是否正确。证书链中第i个证书是使用第i+1个证书的公钥来验

您可能关注的文档

文档评论(0)

kehan123 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档