数字证书的创建.ppt

上传人:小飞机 文档编号:5270135 上传时间:2023-06-21 格式:PPT 页数:34 大小:263.99KB
返回 下载 相关 举报
数字证书的创建.ppt_第1页
第1页 / 共34页
数字证书的创建.ppt_第2页
第2页 / 共34页
数字证书的创建.ppt_第3页
第3页 / 共34页
数字证书的创建.ppt_第4页
第4页 / 共34页
数字证书的创建.ppt_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《数字证书的创建.ppt》由会员分享,可在线阅读,更多相关《数字证书的创建.ppt(34页珍藏版)》请在三一办公上搜索。

1、第五章 数字证书的创建,主要内容,使用keytool工具创建数字证书使用keytool工具和JAVA程序读取并显示数字证书使用keytool工具和JAVA程序维护密钥库使用JAVA程序签发数字证书对单个数字证书进行初步检验,使用默认的密钥库和算法创建数字证书,创建证书使用参数keytool-genkey以上生成的公钥、私钥和证书都保存在用户的主目录中创建的一个默认文件“keystore”中。该文件一般保存在“c:Documents and Setting用户名”由于“keystore”中包含了私钥,所以是一个需要保密的文件,因此上述操作第一次使用需要设置一个密码,下次在使用这个密钥库时必须提供

2、这个密码才能进入。一个密钥库可以存放多个密钥,每个密钥以别名作为区分,若没有说明,默认别名是mytest.每个别名可以设置一个密码来保护。是,使用别名,密钥库可以存放多个条目(公钥、私钥对和证书),它们在密钥库中以别名区分。在上节中没有指定别名,因此系统使用了默认的别名mykey.当密钥库中有多个公钥、私钥对和证书时,应该使用别名-alias。例:keytool-genkey-alias xuyingxiao2,例,使用指定的算法和密钥库和有效期,Keytool中的-keyalg参数可以指定密钥的算法,如果需要指定密钥的长度,可以再加上-keysize参数。密钥长度默认为1024位,使用DSA

3、算法时,密钥长度必须再5121024之间,并且是64的整数倍。-keystore参数可以指定密钥库的名称,密钥库其实是存放密钥和证书的文件,密钥库对应的文件不存在则自动创建。-validity参数可以指定所创建的证书的有效期是多少天。,例,使用非交互模式,还可以使用非交互模式来指定所有信息创建公钥、私钥对和证书。密钥库的密码:用-storepass来指定别名条目的密码:用-keypass来指定证书拥有者的信息:用-dname来指定,例,keytool-genkey-dname CN=tmp,OU=NC,O=Shanghai University,L=ZB,ST=Shanghai,C=CN-al

4、ias tmp-keyalg RSA-keystore mykeystore-keypass wshr.ut-storepass wshr.ut-validity 1000,数字证书的显示,1、使用keytool直接从密钥库显示条目信息参数-list可以显示密钥库中的证书信息2、使用直接从密钥库中显示证书详细信息-v参数可以显示证书的详细信息3、使用keytool将证书导出到文件使用-export参数可以将指定别名的证书导出到文件,文件名通过-file参数指定。若加-rfc,则可以使用一种可打印的编码格式来保存证书。,4、使用keytool从文件中显示证书使用keytool的printcert

5、参数可以将导出的证书文件详细内容显示出来,文件名通过-file参数指定。5、在windows从文件显示证书,使用keytool直接从密钥库显示条目信息,-v参数可以显示证书的详细信息,使用-export导出证书,例:使用keytool从文件中显示证书,JAVA程序从证书文件读取证书,编程思路:(1)获取CertificateFactory类型的对象(2)获取证书文件输入流(3)生成Certificate类型的对象(4)显示证书内容例:java PrintCert mytest.cer 将创建文件tmp.txt,JAVA程序从密钥库中直接读取证书,编程思路:(1)创建密钥库的文件输入流(2)创建

6、Keystore对象(3)加载密钥库(4)获取密钥库中的证书例:java PrintCert2可以使用java PrintCert2tmp2.txt将输出重定向到文件tmp2.txt中,例,JAVA程序显示证书指定信息,上节显示了证书的全部信息,这里介绍如何从证书中只提取所需要的信息。编程思路:(1)获取证书(2)将证书转换为X509类型(3)获取版本号(4)获取序列号(5)获取主体和签发者的全名(6)获取证书的有效期(7)获取证书的签名算法(8)获取证书的签名(9)获取证书的公钥java ShowCertInfo mytest.cer tt.txt,例:,密钥库的维护,1、删除指定条目-de

7、lete可以删除密钥库中的条目先执行文件,在密钥库mykeystore中创建一个临时条目tmp1.再在mykeystore文件所在的目录中执行:Keytool list keystore mykeystore storepass wshr.ut来显示所有条目删除条目用命令:keytool delete alias tmp1 keystore mykeystore,2、修改指定条目的口令-keypasswd可以修改密钥库中指定条目的口令先执行文件,在密钥库mykeystore中创建一个临时条目tmp1.将原来的密码abcdefg改为123456,3、java程序列出密钥库所有条目例:java S

8、howAlias4、JAVA程序修改密钥库口令例:java SetStorePass wshr.ut mynewpass现用下面的命令将mykeystore密钥库文件备份到文件 mykeystore.bat中:Copy mykeystore mykeystore.bak对比改密码后的文件和原文件内容是否相同Java DigestInput mykeystoreJava DigestInput mykeystore.bak,5、JAVA程序修改密钥库条目的口令及添加条目例:java SetKeyPass mytest wshr.ut newpass,6、JAVA程序检验某个别名是否存在于密钥库m

9、ykeystore中,若存在则从密钥库中删除该条目例:DeleteAlias,数字证书的签发,和现实生活中一样,要有权威的机构检查证书中内容的真实性,然后再签发证书(在证书上盖章)。在计算机的世界中,这个盖章的过程就是数字签名,即权威机构用自己的私钥对证书进行数字签名用户要先将CA自身的证书安装在计算机操作系统中,以便计算机自动检验其他证书是否值得信任。CA可以他哦难过电子邮件,网页或盖有公章的正式文件确定,并检查它的认证指纹。,JAVA程序签发数字证书,安装了CA的证书之后,可以用CA的证书来签发其他的证书编程思路:(1)从密钥库读取CA的证书(2)从密钥库中读取CA的私钥(3)从CA的证书

10、中提取签发者信息(4)获得待签发的证书(5)从待签发的证书提取证书信息(6)设置新证书有效期(7)设置新证书序列号(8)设置新证书签发者(9)设置新证书签名算法信息(10)创建证书并使用CA的私钥对其签名(11)将新证书存入密钥库例:java SignCert lf.cer1.txt,例:,数字证书签名后的发布,CA对数字证书签名后可以将其导出到文件。,数字证书的检验,1、JAVA程序验证数字证书的有效期例:检验证书在某个日期是否有效CheckCertValid编程思路:(1)获取x509Certificate类型的对象(2)获取日期(3)检验证书(4)处理CertificateExpired

11、Exception异常(5)处理CertificateNotYetValidException异常例:java CheckCertValid mytest.cer 2002 12 4,例:,2、使用Windows查看证书路径验证证书的签名3、从Windows中卸载证书4、JAVA程序使用CA公钥验证已签名的证书例:验证某个证书是否确实是某个CA签发的java CheckCertSign mytest.cer lf_signed.cer编程思路:(1)获取CA的证书(2)获取待检验的证书(3)获取CA的公钥(4)检验证书(5)处理异常对象。,例:,小结,本章主要介绍了数字证书的概念,以及数字证书的创建、读取、签发和初步验证等功能。下一章主要介绍验证数字证书的相关的证书链及其验证。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号