




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六章 数字化身份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个证书的公钥来验证的。 1)获取待验证的证书数组。 2)获取根证书 3)遍历证书数组,读取公钥 4)验证证书的签名 Java ValiSign my0.cer my1.cer my2.cer,(3)CertPathValidator类基于TrustAnchor验证证书链 该种验证方法比较简单,只要给出CertPath对象和根证书,就可以直接完成对证书链的验证。 例:其他证书都用最后输入的最信任的证书来验证。 1)获取待验证的CertPath对象 2)读取最信任的CA的证书。 3)创建TrustAnchor对象 4)创建和设置PKIXPprameters对象 5)创建CertPathValidator对象 6)执行验证 Java ValidateCP my0.cer my1.cer my2.cer,(4)CertPathValidator类基于密钥库验证证书链 例:将输入的.cer文件组成一个证书链,信任的CA使用的证书从密钥库中提取。 1)获取待验证的CertPath对象 2)获取密钥库 3)创建和设置PKIXParameters对象 4)创建CertPathValidator对象 5)执行验证 6)显示和验证相关的信息。 Java ValidateCPKs lf_signed.cer lfkeystore2 wshr.ut,使用CertStore对象保存和提取证书,尽管密钥库可以存储证书,但密钥库通常用于存放私钥和受信任的证书,大量非信任的证书或已吊销证书的清单一般通过CertStroe对象来访问。 CertStore类通过静态方法getInstance()创建对象,该方法最简单的用法有两个参数,第一个参数指定CertStore类型,即证书的存储类型,可以是LDAP或Collection类型。前者将证书存在LDAP目录中,后者将证书保存在集合中。第二个参数是CertStore初始化参数,不同的CertStore类型使用的参数不同。如对于LDAP类型,可使用LDAPCertStoreParameters类,该类的构造器中传入存放证书的LDAP服务器的服务器名称、端口等信息。对于Collection类型,可使用CollectionCertStoreParameters类,该类的构造器传入保存有证书的集合对象。,(1)创建CertStroe对象。 例:通过.cer文件创建CertStroe对象。 1)得到存放证书的集合对象。 2)设置CertStore参数。 3)创建CertStore对象。 Java CStore my1.cer mytest.cer 请观察217-219页的输出信息,(2)定义证书的选择标准 java.security.cert包中的X509CertSelector类可用于按照一定的规则选择X509Certificates类型的证书,尤其常用于从CertStore对象中提取证书,该类提供了一系列方法用于定义规则,同时提供match()方法来判定方法参数中的证书是否满足这些规则。 例:可以根据各种条件来设置规则,比如通过签发主体,有效日期,序列号等选择证书。 1)创建X509CertSelector对象 2)设置规则 3)检验证书是否满足规则 Java DefineSelector mytest.cer 2013 1 1,(3)从CertStore中提取证书 例:可以根据各种条件来设置规则,比如通过签发主体,有效日期,序列号等提取证书。 1)获得CertStore对象 2)定义提取规则 3)提取证书 4)处理证书 Java MySelector mytest.cer my0.cer my1.cer my2.cer lf_signed.cer,证书的吊销,CA在签发了某个证书后,可能因种种原因在证书没有过期之前就需要吊销对证书的签发。原因可能是CA发现被签发者不再值得信任,或签发者可能不小心丢失了私钥而主动要求吊销私钥对应的证书。因此CA会周期性地公布已吊销证书的清单(CRL),(1)查看证书吊销清单常规信息,证书吊销清单可以从CA的主页上下载,它一般是一个文件名以“.crl”为后缀的文件。 1)获得CertificateFactory对象 2)读取清单文件 3)创建X509CRL对象 4)查看证书吊销清单 例:java ShowCRLInfo ecpki.crl,(2)查看清单中被吊销的证书 通过JAVA程序查看证书吊销清单中被吊销的证书 1)获得X509CRL对象 2)获得吊销清单中各个条目的集合 3)从集合中提取出各个吊销清单条目 4)从吊销清单条目中提出对应的信息 例:java ShowCRLEntries NewClass2Individual.crl java ShowCRLE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年宣城广德市实验小学教育集团南校区招聘考试参考试题及答案解析
- 2025承德平泉市招聘事业单位55名备考考试题库附答案解析
- 2025东风卓联汽车服务有限公司招聘1人备考考试题库附答案解析
- 工厂安全培训材料课件
- 2025年合肥市建投集团秋季招聘20名笔试模拟试题及答案解析
- 哲思之旅:学界篇
- 幼教课件精良设计
- 《太空一日》课件
- 混合系统安全性分析-洞察及研究
- 手抓饼吃法课件
- GB/T 3098.4-2000紧固件机械性能螺母细牙螺纹
- 保险投资发展历程保险分红知识前言
- 完美奖金制度课件
- 全新档案法专题学习讲座课件
- DB37-T 5026-2022《居住建筑节能设计标准》
- 线性代数试题及答案-线性代数试题
- 六年级上册道德与法治课件第四单元第8课
- 量具使用知识培训课件
- 新苏教版三年级上册科学全册教案
- Q-RJ 557-2017 航天型号产品禁(限)用工艺目录(公开)
- JIS C62133-2-2020 便携式密封二次电池及其电池的安全要求 第2部分:锂系统
评论
0/150
提交评论