版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第六章 数字化身份certpath证书链主要内容n使用keytool工具和java程序创建并保存证书链n从证书文件、密钥库或https服务器获取证书链的certpathn显示和保存证书链中的证书n验证证书链n使用certstore来保存和提取证书n吊销证书证书链n证书链本质上是一组按顺序排列的数字证书,又称为认证链、证书路径。证书链证明了证书的合法性,证书链合法,则可以相信证书中所宣称的某个主体拥有某个公钥。n例如:a的证书由b颁发,b由c颁发,c由d颁发,这样就形成了一个4个证书组成的证书链:a-b-c-d.若要验证a的证书是否值得信任,只要检验者信任b,c,d中的任一个证书即可。密钥库中创
2、建并保存证书链的几种方法n1、使用keytool将已签名的数字证书导入密钥库n使用-import参数可以将数字证书导入到密钥库,主要要先导入ca的证书n(1)将第五章的密钥库lfkeystore,mytest.cer,lf.cer,lf_signed.cer拷入一个文件夹n(2)若先导入lf_signed.cer会出错,因为ca mytest还没有导入,无法建立证书链。要先导入mytest.cer (3)最后导入lf_signed.cer覆盖自签名的lfn2、使用java程序将已签名的数字证书导入到密钥库n例:首先读取ca的证书mytest.cer和用户收到的签名后的证书lf_signed.c
3、er,使用这两个证书组成证书链,然后从用户的密钥库读取私钥,最后执行keystore对象的setkeyentry()方法将私钥和证书一起写入密钥库,并用store()方法保存为文件即可。n先copy lfkeystore.bak.before.6.1.1 lfkeystorenjava importcert几种获取certpath证书链的方法ncertpath类代表证书链n(1)根据证书文件生成certpath类型的对象n例:用.cer文件生成certpath类型的对象,并将其中所有的文件打印出来。java getcertpathcert lf_signed.cer mytest.cer1.t
4、xtn(2)从密钥库读取证书链生成certpath类型的对象n1)获取相关参数n2)获取keystore对象并加载密钥库n3)从密钥库读取数组形式的证书链n4)生成列表对象n5)创建certpath类型的对象n例:从密钥库中逐个读取证书形成密钥链并打印出来。java getcertpathtks lfkeystore2 wshr.ut lf 2.txtnjava getcertpathtks lfkeystore newpass lf_signed3.txtn(3)从https服务器获取证书链n数字证书在网络上各种https服务器上用得很多,这些服务器对应的是https:/.格式的网址,一般使
5、用443作为端口号。n编程步骤:n1)创建sslserversocketfactory类型的对象。n2)创建sslsocket类型的对象。n3)和https服务器建立连接n4)获取连接的会话n5)获取证书n6)将证书数组中的内容放入列表n7)由列表对象创建certpath类型的对象n例:getcertpathhttpsnjava getcertpathhttps verisign.txtcertpath对象的证书显示和保存n(1)显示certpath中的证书n1)获取certpath类型的对象n2)从certpath对象获取证书列表。n3)处理列表。n例:用.cer文件得到certpath对象
6、,并提取该对象中包含的证书。njava showcertpath lf_signed.cer mytest.cer xxx.txtn(2)保存certpath中的证书n1)获取certpath类型的对象n2)创建密钥库n3)获取certpath中的证书数组n4)将certpath中的证书写入密钥库。n5)保存密钥库n例:将certpath对象中的证书保存到密钥库并进而导出到文件中。n运行java storecert之后,将创建密钥库mycertpathstore,可以用nkeytool list keystore mycertpathstore查看密钥库的内容。结果截图验证certpath证书
7、链n(1)验证主体和签发者n例:验证证书链中各个证书的签发者和证书链中后一个证书的主体名称是否匹配。n编程步骤: n1)获取证书数组n2)遍历证书数组n3)比较njava valisubissu my0.cer my1.cer my2.cern(2)验证签名n例:验证证书链中各个证书的签名是否正确。证书链中第i个证书是使用第i+1个证书的公钥来验证的。n1)获取待验证的证书数组。n2)获取根证书n3)遍历证书数组,读取公钥n4)验证证书的签名njava valisign my0.cer my1.cer my2.cern(3)certpathvalidator类基于trustanchor验证证书
8、链n该种验证方法比较简单,只要给出certpath对象和根证书,就可以直接完成对证书链的验证。n例:其他证书都用最后输入的最信任的证书来验证。n1)获取待验证的certpath对象n2)读取最信任的ca的证书。n3)创建trustanchor对象n4)创建和设置pkixpprameters对象n5)创建certpathvalidator对象n6)执行验证njava validatecp my0.cer my1.cer my2.cern(4)certpathvalidator类基于密钥库验证证书链n例:将输入的.cer文件组成一个证书链,信任的ca使用的证书从密钥库中提取。n1)获取待验证的ce
9、rtpath对象n2)获取密钥库n3)创建和设置pkixparameters对象n4)创建certpathvalidator对象n5)执行验证n6)显示和验证相关的信息。njava validatecpks lf_signed.cer lfkeystore2 wshr.ut使用certstore对象保存和提取证书n尽管密钥库可以存储证书,但密钥库通常用于存放私钥和受信任的证书,大量非信任的证书或已吊销证书的清单一般通过certstroe对象来访问。n certstore类通过静态方法getinstance()创建对象,该方法最简单的用法有两个参数,第一个参数指定certstore类型,即证书的
10、存储类型,可以是ldap或collection类型。前者将证书存在ldap目录中,后者将证书保存在集合中。第二个参数是certstore初始化参数,不同的certstore类型使用的参数不同。如对于ldap类型,可使用ldapcertstoreparameters类,该类的构造器中传入存放证书的ldap服务器的服务器名称、端口等信息。对于collection类型,可使用collectioncertstoreparameters类,该类的构造器传入保存有证书的集合对象。n(1)创建certstroe对象。n例:通过.cer文件创建certstroe对象。n1)得到存放证书的集合对象。n2)设置c
11、ertstore参数。n3)创建certstore对象。njava cstore my1.cer mytest.cern请观察217-219页的输出信息n(2)定义证书的选择标准njava.security.cert包中的x509certselector类可用于按照一定的规则选择x509certificates类型的证书,尤其常用于从certstore对象中提取证书,该类提供了一系列方法用于定义规则,同时提供match()方法来判定方法参数中的证书是否满足这些规则。n例:可以根据各种条件来设置规则,比如通过签发主体,有效日期,序列号等选择证书。n1)创建x509certselector对象n2
12、)设置规则n3)检验证书是否满足规则njava defineselector mytest.cer 2013 1 1n(3)从certstore中提取证书n例:可以根据各种条件来设置规则,比如通过签发主体,有效日期,序列号等提取证书。n1)获得certstore对象n2)定义提取规则n3)提取证书n4)处理证书njava myselector mytest.cer my0.cer my1.cer my2.cer lf_signed.cer证书的吊销nca在签发了某个证书后,可能因种种原因在证书没有过期之前就需要吊销对证书的签发。原因可能是ca发现被签发者不再值得信任,或签发者可能不小心丢失了私
13、钥而主动要求吊销私钥对应的证书。因此ca会周期性地公布已吊销证书的清单(crl)(1)查看证书吊销清单常规信息n证书吊销清单可以从ca的主页上下载,它一般是一个文件名以“.crl”为后缀的文件。n1)获得certificatefactory对象n2)读取清单文件n3)创建x509crl对象n4)查看证书吊销清单n例:java showcrlinfo ecpki.crln(2)查看清单中被吊销的证书n通过java程序查看证书吊销清单中被吊销的证书n1)获得x509crl对象n2)获得吊销清单中各个条目的集合n3)从集合中提取出各个吊销清单条目n4)从吊销清单条目中提出对应的信息n例:java showcrlentries newclass2individual.crlnjava showcrlen
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 开题报告:虚拟医学临床诊疗培训云平台设计与应用
- 开题报告:新时代内地西藏班爱国主义教育序列化活动课程实践研究
- 中考地理总复习阶段填图06 中国地理概况(原卷版)
- 2024年广州商务写字楼租赁协议范本版
- 2024年劳动协议安全管理制度样本解析版B版
- 2024年幼儿园中班科学活动教案-好玩的拓印
- 2024年度企业办公设备采购与服务协议版B版
- 建设项目需征占用林地定额计划行政工作计划
- 2024双拥工作总结与计划
- 2024高三化学教师的工作计划
- GA 1811.2-2022传媒设施反恐怖防范要求第2部分:广播电视传输覆盖网设施
- GB/T 29494-2013小型垂直轴风力发电机组
- GB 24544-2009坠落防护速差自控器
- 城镇排水管道检测与评估技术规程(CJJ-181-2012)
- 羽毛球比赛对阵表秩序册
- 网络情报获取与分析技术教学大纲
- 垃圾填埋场可行性研究报告
- GB∕T 22459.5-2022 耐火泥浆 第5部分:粒度分布(筛分析)试验方法
- 荣氏家族的兴衰历程课件
- 全面深化国有企业改革课件
- PSOA新人认证试题含答案
评论
0/150
提交评论