《数字证书的创建》PPT课件.ppt_第1页
《数字证书的创建》PPT课件.ppt_第2页
《数字证书的创建》PPT课件.ppt_第3页
《数字证书的创建》PPT课件.ppt_第4页
《数字证书的创建》PPT课件.ppt_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第五章数字证书的创建 主要内容 使用keytool工具创建数字证书使用keytool工具和JAVA程序读取并显示数字证书使用keytool工具和JAVA程序维护密钥库使用JAVA程序签发数字证书对单个数字证书进行初步检验 使用默认的密钥库和算法创建数字证书 创建证书使用参数keytool genkey以上生成的公钥 私钥和证书都保存在用户的主目录中创建的一个默认文件 keystore 中 该文件一般保存在 c DocumentsandSetting 用户名 由于 keystore 中包含了私钥 所以是一个需要保密的文件 因此上述操作第一次使用需要设置一个密码 下次在使用这个密钥库时必须提供这个密码才能进入 一个密钥库可以存放多个密钥 每个密钥以别名作为区分 若没有说明 默认别名是mytest 每个别名可以设置一个密码来保护 是 使用别名 密钥库可以存放多个条目 公钥 私钥对和证书 它们在密钥库中以别名区分 在上节中没有指定别名 因此系统使用了默认的别名mykey 当密钥库中有多个公钥 私钥对和证书时 应该使用别名 alias 例 keytool genkey aliasxuyingxiao2 例 使用指定的算法和密钥库和有效期 Keytool中的 keyalg参数可以指定密钥的算法 如果需要指定密钥的长度 可以再加上 keysize参数 密钥长度默认为1024位 使用DSA算法时 密钥长度必须再512 1024之间 并且是64的整数倍 keystore参数可以指定密钥库的名称 密钥库其实是存放密钥和证书的文件 密钥库对应的文件不存在则自动创建 validity参数可以指定所创建的证书的有效期是多少天 例 使用非交互模式 还可以使用非交互模式来指定所有信息创建公钥 私钥对和证书 密钥库的密码 用 storepass来指定别名条目的密码 用 keypass来指定证书拥有者的信息 用 dname来指定 例 keytool genkey dname CN tmp OU NC O ShanghaiUniversity L ZB ST Shanghai C CN aliastmp keyalgRSA keystoremykeystore keypasswshr ut storepasswshr ut validity1000 数字证书的显示 1 使用keytool直接从密钥库显示条目信息参数 list可以显示密钥库中的证书信息2 使用直接从密钥库中显示证书详细信息 v参数可以显示证书的详细信息3 使用keytool将证书导出到文件使用 export参数可以将指定别名的证书导出到文件 文件名通过 file参数指定 若加 rfc 则可以使用一种可打印的编码格式来保存证书 4 使用keytool从文件中显示证书使用keytool的 printcert参数可以将导出的证书文件详细内容显示出来 文件名通过 file参数指定 5 在windows从文件显示证书 使用keytool直接从密钥库显示条目信息 v参数可以显示证书的详细信息 使用 export导出证书 例 使用keytool从文件中显示证书 JAVA程序从证书文件读取证书 编程思路 1 获取CertificateFactory类型的对象 2 获取证书文件输入流 3 生成Certificate类型的对象 4 显示证书内容例 javaPrintCertmytest cer将创建文件tmp txt JAVA程序从密钥库中直接读取证书 编程思路 1 创建密钥库的文件输入流 2 创建Keystore对象 3 加载密钥库 4 获取密钥库中的证书例 javaPrintCert2可以使用javaPrintCert2 tmp2 txt将输出重定向到文件tmp2 txt中 例 JAVA程序显示证书指定信息 上节显示了证书的全部信息 这里介绍如何从证书中只提取所需要的信息 编程思路 1 获取证书 2 将证书转换为X509类型 3 获取版本号 4 获取序列号 5 获取主体和签发者的全名 6 获取证书的有效期 7 获取证书的签名算法 8 获取证书的签名 9 获取证书的公钥javaShowCertInfomytest cer tt txt 例 密钥库的维护 1 删除指定条目 delete可以删除密钥库中的条目先执行5 3 1 bat文件 在密钥库mykeystore中创建一个临时条目tmp1 再在mykeystore文件所在的目录中执行 Keytool list keystoremykeystore storepasswshr ut来显示所有条目删除条目用命令 keytool delete aliastmp1 keystoremykeystore 2 修改指定条目的口令 keypasswd可以修改密钥库中指定条目的口令先执行5 3 1 bat文件 在密钥库mykeystore中创建一个临时条目tmp1 将原来的密码abcdefg改为123456 3 java程序列出密钥库所有条目例 javaShowAlias4 JAVA程序修改密钥库口令例 javaSetStorePasswshr utmynewpass现用下面的命令将mykeystore密钥库文件备份到文件mykeystore bat中 Copymykeystoremykeystore bak对比改密码后的文件和原文件内容是否相同JavaDigestInputmykeystoreJavaDigestInputmykeystore bak 5 JAVA程序修改密钥库条目的口令及添加条目例 javaSetKeyPassmytestwshr utnewpass 6 JAVA程序检验某个别名是否存在于密钥库 mykeystore 中 若存在则从密钥库中删除该条目例 DeleteAlias 数字证书的签发 和现实生活中一样 要有权威的机构检查证书中内容的真实性 然后再签发证书 在证书上盖章 在计算机的世界中 这个盖章的过程就是数字签名 即权威机构用自己的私钥对证书进行数字签名用户要先将CA自身的证书安装在计算机操作系统中 以便计算机自动检验其他证书是否值得信任 CA可以他哦难过电子邮件 网页或盖有公章的正式文件确定 并检查它的认证指纹 JAVA程序签发数字证书 安装了CA的证书之后 可以用CA的证书来签发其他的证书编程思路 1 从密钥库读取CA的证书 2 从密钥库中读取CA的私钥 3 从CA的证书中提取签发者信息 4 获得待签发的证书 5 从待签发的证书提取证书信息 6 设置新证书有效期 7 设置新证书序列号 8 设置新证书签发者 9 设置新证书签名算法信息 10 创建证书并使用CA的私钥对其签名 11 将新证书存入密钥库例 javaSignCertlf cer 1 txt 例 数字证书签名后的发布 CA对数字证书签名后可以将其导出到文件 数字证书的检验 1 JAVA程序验证数字证书的有效期例 检验证书在某个日期是否有效CheckCertValid编程思路 1 获取x509Certificate类型的对象 2 获取日期 3 检验证书 4 处理CertificateExpiredException异常 5 处理CertificateNotYetValidException异常例 javaCheckCertValidmytest cer2002124 例 2 使用Windows查看证书路径验证证书的签名3 从Windows中卸载证书4 JAVA程序使用CA公钥验证已签名的证书例 验证某个证书是否确实是某个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论