![JDK中的证书生成和管理工具keytool-编程开发技术_第1页](http://file2.renrendoc.com/fileroot_temp3/2021-12/1/777a8737-1a9e-466d-8e4b-eca94e484f27/777a8737-1a9e-466d-8e4b-eca94e484f271.gif)
![JDK中的证书生成和管理工具keytool-编程开发技术_第2页](http://file2.renrendoc.com/fileroot_temp3/2021-12/1/777a8737-1a9e-466d-8e4b-eca94e484f27/777a8737-1a9e-466d-8e4b-eca94e484f272.gif)
![JDK中的证书生成和管理工具keytool-编程开发技术_第3页](http://file2.renrendoc.com/fileroot_temp3/2021-12/1/777a8737-1a9e-466d-8e4b-eca94e484f27/777a8737-1a9e-466d-8e4b-eca94e484f273.gif)
![JDK中的证书生成和管理工具keytool-编程开发技术_第4页](http://file2.renrendoc.com/fileroot_temp3/2021-12/1/777a8737-1a9e-466d-8e4b-eca94e484f27/777a8737-1a9e-466d-8e4b-eca94e484f274.gif)
![JDK中的证书生成和管理工具keytool-编程开发技术_第5页](http://file2.renrendoc.com/fileroot_temp3/2021-12/1/777a8737-1a9e-466d-8e4b-eca94e484f27/777a8737-1a9e-466d-8e4b-eca94e484f275.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、jdk中的证廿生成和管理工具keytool -编程开发技术jdk中的证书生成和管理工具keytool原文出处:京山游侠参考资料该文屮的内容来源于oracle的官方文档?java se tools reference?。oracle 在java方面的文档是非常完善的。对java 8感兴趣的朋友,可以直接找到这 个总入m?java se 8 documentation?,想阅读什么就点什么。木博客不定期从 oracle官网搬砖。这里介绍的工具是?keytool?o网络安全概论在web世界里,安全是一个重之乂重的课题,甚至是美国政府都禁止某些加密 解密算法的出口。java和linux都是web领域的
2、领头羊,各种加解密的算法 和管理工具一应俱全,例如gnupg就是一个不错的安全套件。但是在这里,只 展示一下jdk中的keytool工貝的使用方法。先来说一下加解密算法的分类。基本上可以分为三类,它们分别是对称性解密算 法、非对称性加密算法和消息摘要算法。每一类算法中乂有多个不同的具体算法。 对于这些算法,我们不要求完全掌握,但是对丁各类算法的特点和用途是一定耍 了解的,对于一些常见的名字,女口 des、aes、rsa、dsa、md5、si1a1等,一定 要熟悉,至少要知道它们分别屈于哪类算法。对称性加密算法使用同一个密钥对信息进行加密和解密,其信息的安全性一部分 取决于加密算法和密钥的长度,
3、另一部分取决于密钥在传递过程中是否会被截获 或盗取。非对称性加密算法使用两个密钥分别对信息进行加密和解密,这两个密 钥称为私钥/公钥对。使用私钥加密的信息必须使用公钥解密,反之亦然。公钥 可以公开发布,私钥由加密方保存,绝对不公开,将私钥被截获或窃取的可能性 降到最低,因此非对称性加密算法的安全性比对称性加密算法的安全性更高。既 然非对称性加密算法比对称性加密算法安全性更高,那对称性加密算法有什么存 在的必要呢?这是因为对称性加密算法的运算速度更快。现实屮,往往将对称性 加密算法和非对称性加密算法结合使用,对于要传输的人块数据使用对称性加密 算法加密,然后对加密使用的密钥使用非对称性加密算法进
4、行加密,这样既可以 获得更高的安全性,又可以获得更高的加解密运算速度。常用的对称性加密算法 有des算法、aes算法、3des算法、tdea算法、blowfish算法、rc5算法、idea 算法。常用的非对称性加密算法有dsa算法、rsa算法、elgamal算法、背包算 法、rabin算法、d-h算法、ecc算法(椭圆曲线加密算法)。消息摘要算法的主要目的是对数据生成摘要。消息摘要算法不需要密钥,只冇输 入相同的数据才能得到相同的摘要,而且不可能从摘要反过来推算出数据。常用 的消息摘要算法有md5算法和sha-1算法及其大量的变体。它们可以用来保证数 据的完整性,在网络上发布文件吋,常同时提供
5、该文件的md5值就是利用的消息 摘要算法的这个特点,一旦该文件被篡改或者在网络传输中出现数据错谋,再对 其进行摘要运算就得不到相同的md5值。对数据进行签名是我们在网络中最常见的安全操作。签名有双重作用,作用一就 是保证数据的完整性,证明数据并非伪造,而h在传输的过程中没有被篡改,作 用二就是防止数据的发布者否认其发布了该数据。签名同时使用了非对称性加密 算法和消息摘要算法,对一块数据签名时,会先对这块数据进行消息摘要运算生 成一个摘要,然后对该摘要使用发布者的私钥进行加密。接收者接受这块数据后, 先使用发布者的公钥进行解密得到原数据的摘要,再对接收到的数据计算摘要, 如果两个摘耍相同,则说明
6、数据没有被篡改。同时,因为发布者的私钥是不公开 的,只要接收者通过发布者的公钥能成功对数据进行解密,就说明该数据一定来 源于该发布者,他再怎么抵赖也没有用。那么问题来了,怎么确定某公钥一定是屈于某发布者的呢?这就需要证书了。证 书由权威认证机构颁发,其内容包含证书所冇者的标识和它的公钥,并由权威认 证机构使用它的私钥进行签名。信息的发布者通过在网络上发布证书来公开它的 公钥,该证书由权威认证机构进行签名,认证机构也是通过发布它的证书来公开 该机构的公钥,认证机构的证书由更权威的认证机构进行签名,这样就形成了证 书链。证书链最顶端的证书称为根证书,根证书就只有口签名了。总z,要对网 络上传播的内
7、容进行签名和认证,就一定会用到证书。关于证书遵循的标准,最 流行的是x. 509,关于证书的具体内容,网络上一搜一大把,我这里就不讲了。使用keytool创建和管理证书在java小也广泛使用证书,例如,使用?jarsigncr?命令对jar包进行签名和 认证。jdk屮创建和管理证书的工具是?keytool?0 ?keytool?是一个功能强大的 安全工具,它不仅仅只是用來创建和管理证书,还可以用來创建和管理对称性加 密算法需要用到的密钥,还可以用自己的证书给别人签发证书(类似ca的工 作),还可以导入别人发布的证书。?keytool?使用keystore存储密钥和证书, 在一个kcystorc
8、中可以存储多个条目,访问kcystorc和访问kcystorc中的 条目均需要密码。下面开始实战。要进行非对称性加密,我们首先要有属于自己的私钥/公钥对, 这可以通过?keytool -genkeypairs -alias xxx?命令得到。创建密钥对的吋 候,?keytool?会在keystore中生成一个新的条目,?-alias xxx选项就是对 该条目进行命名。生成密钥对z后,私钥是以原始数据直接储存在keystore中 的,而公钥是要发布出去的,所以它被封装在一个x. 509格式的自签名证书屮。 换句话说,创建密钥对的时候,同时就创建了一个自签名的证书。先将t己假想为一个认证机构,或者
9、说一个只对我t己签发证书的私冇认证机 构,我称之为myca,先为myca生成一个自签名的根证书,使用的命令 是?keytool -genkeypair -alias myca?,如下图:活动 终端youxiax55(;youxiax550v $ export path=/jdkl80_45/bin:$path;youxiax550v $;youxiax550v java -versionjava version t80_45"java(tm) se runtime environment (build 1.8<0_45-bl4)java hotspot(tm) 64-bit s
10、erver vm (build 2545-b02, mixed mode) ;youxiax550v j$;youxiax550v keytool -genkeypair alias myca您的名字与姓氏是什么?unknown: ca 您的组织单在名称是什么?unknown: ca department 您的组织名称是什么?unknownl: unknown:您幅在的省/市/自治区名称是什么? unknown:,c二cn是否正确?unknown: cncn=ca> ou=ca department o,l= 否:y输入myca的密钥口令(如果和密缶库口令相同,按回车): 再次输入新口令
11、:youxiax550v $youxiax550v -$ keytool -list 检入密缶库口令:i聶星養養芳淫un您的密钥库包含1个条目myca. 2815-4-21, privatekeyentry证书指纹(sha1) : 94:ad:01:0e:ef:67:bf:2f:9b:01:62:23:d7:c0:a7:47:bd:1f:2b jyouxiax550v $ 可以看到,除了捉示我们输入keystore的密码和myca条目的密码z外,述捉 示我们输入名字、部门、组织、区域、国家代码等信息,这些信息主要是用来标 识证书的所有者。按提示完成操作后,就在keystore 生成了一个myc
12、a条口,该条目屮保存冇myca的私钥和myca的自签名证书,该证书屮包含myca的公 钥。使用?keytool -list?命令看一下,可以看到keystore中新增的myca条 口。如果给?keytool -list?命令増加?-v?选项,则可以看到更加详细的内容。这些 内容可以让我们对myca的证书有更直观的了解,如下图:活动 终端youxiax55(ouxiax550vkeytool -list v入密弟库口令::jks:sun1个条目myca?期:2015-4-21言型:privatekeyentry蚩长度:1亍:cn二ca, ou=ca departmento=, l=3: cn=c
13、aj ou=ca departmento=, l= y: c0de251月开始日期:tue apr 21 12:23:36 cst 2015,截止日期:,st=|,st=,c=cn ,c=cnmd5: c0:9f:e4:28:b7:1e:f5:67:50:c4:b9:6b:df:73: sha1: 94:ad:01:0e:ef:67:bf:2f:9b:01:62:23:d7:c0 sha256: 7c:10:07:4a:29:52:17:47:eb:6d:e6:id:3b: 签名算法名称:shalwithdsa版本:3mon59: :a7b4:jul 20 12:23:3d66 :47:bd:
14、1f:2b:42| 5c:74:5b:6c:3fj扩展:#1: objectld: 2.5.29.14 criticality二falsesubjectkeyidentifier keyldentifier 0000: ca bf 3a a5 62 3b b0 3a 0c al 8a e3 13 bd fe c0 :b;0010: 82 37 a5 517q*youxiax550v $ 然后,再为我自己生成一个密钥对,使用命令?keytool -genkeypair -alias youxia?命令,按提示完成操作后,keystore中就乂多了一个youxia条目,如 下图:使用?keytoo
15、l -list -v -alias youxia?命令可以查看youxia的证书,它也是 自签名的,如下图:活动youxiax55(x550vkeytool -list -alias youxia -vouxia月:2015-4-21: privatekeyentryl二,st二l=l, st= jmon jul 20 12:27:5? 0e:ce:d6:a5:2a:12:9e:b6 i31:8d:40:e9:b7:4b:be度:1:cn=youxia? ou=develop department, o=, :cn=youxia ou=develop department, o=, :3b29
16、6882幵始日期:tue apr 21 12:27:57 cst 2015,截止日期:md5: 42:5b:16:77:c9:69:b9:ca:2d:94:f5:ad:dc:82: sha1: 94:6b:di:3b:ib:ba:55:al:10:34:ae:db:b5:ef sha256: cb:89:6a:78:f8:60:e3:52:d4:08:ib:9c:2d: 签名算法名称:shalwithdsa版本:3:objectld: 2.5.29.14 criticality=false bjectkeyidentifier dentifier 2.:el 62 3f fa ib 97 03
17、 14 fb 59 82 2e 99 f4 32 01b?:5d 38 3d 5b8=自签名的证书可以使用,但是总不如认证机构颁发的证书权威。怎么样让ca为 我们颁发证书呢?首先我们要向ca提交申请,提交申请的时候需要提交一份称 为certificate request的数据。我们可以通过?keytool -certreq?命令针对 keystore中和应的条目生成该数据。在这里,我想让ca给youxia颁发证书,则使用?keytool -certreq -alias youxia?来生成 certificate request,我同 时使用管道和?tee?命令让主成的数据既显示在控制台中,乂
18、保存在文 件?youxia. certreq?中,如下图:活动 终端youxiax55( keytool -certreq -alias youxia | tee youxia.certreqbegin new certificate requestj miicpzccamucaqawczelmakgaluebhmcq04xdjambgnvbagtbuhlymvpmrewdwydvqqhewhkaws u2hhbjetmbegaluechmkegtsyw5klmnvbtebmbkgaluecxmsrgv2zwxvccbezxbhcnrtzw50mq$ dqydvqqdewzzb3wawewgg
19、g3miiblayhkozizjgeatccar8cgyea/x9tgrlleils30qcluzk5/n tli870qawx4/glzrdmlfxuaiuftzpyly+r/f9bow9subvwzxgtuahtrv8mzgt2uzukwkn5/obh$ isdpu6 nx/rfggqv+fgqkyvdwtpg/btxrpdajvuelowktlzdfoukzhxku/ylgmz ndfiacccfq。 yfcpfsmlzlksuyki64ql8fgc9qkbgqd34acflps93su8qlw2ufe5ezsvu/o66ol5v0wlpqeczle v4661flp5neheigate
20、kwcspotcgwe7fpctkmykbhpbz6ilr8jsjgo64ek70mdzfuo38l+ielyvh ynob3dvmppg+qfgqiaid34-fa5z8gkotmxob7vsvkauw7/s9jkgobhaacgybonrumleqvdv2v54l ryrpmxwelna8zuuzcdze7l3bo2nlf4sgenm645olo4kpnt7x/62d4wbueddyjowdq+oh/l8036< cbdsut3ygxud7xeedw/flbdyytm0rbalu4q3csyl3zkjhkitmrcrh5zwtt9xx73lwhycdr9ngqd 2aawmc4gcs
21、qgsib3dqejdjehmb8whqydvr0obbyefofip/oblwmu+lmclpn0mgfdodlbmasgbyd sm44bamfaamvadasahrhulqpckpwljx3tbw4bryity/thwiupc rwelimojcfaifidsvfa/ibd end new certificate requesti 牡丈醤囂番50乂$ keytool -gencert alias myca -infile youxia.certreq -out-fl youxiax550v $ keytool -printcert -v -file youxiacer所有者:cn二you
22、xia, ou二develop department, o=,st=发布者:cn=ca? ou=ca department0二, l二矇,st=t c=cn序列号:865edle肴效期开始日期:tue apr 21 12:51:44 cst 2015.截止日期:mon jul 20 12:51:4 证书指纹:|md5: 01:d2:e7:7b:c0:9e:43:df:0e:49:65:49:14:60:cb:53sha1: 72:c0:e2:24:62:76:73:2a:d6:d1:f3:e1:fa:78:8a:a4:85:91:5b:4csha256: 5d:ba:67:6d:f2:46:3
23、d:f7:e4:c3:ce:47:4c:55:d6:bf:a9:0a:60:签名算法名称:shalwithdsa版本:3扩展:#1: objectld: 252935 criticallty二falseauthoritykeyldentifier keyldentifier 0000: ca bf 3a a5 62 3b b0 3a 0c al 8a e3 13 bd fe c0 :b;:0010: 82 37 a5 517qr#2: objecttd: 2.5.29.14 subjectkeyidentifier keyldentifier 0000: el 62 3f fa ib 97cr
24、iticality二false03 14 fb 59 82 2e 99 f4 32 01y2.从上图屮可以看到,生成的certificate request数据是base64编码的。然 后,将该中请提交给cao当然,现实中的ca那都是妾收费的,而且还不便宜。 那么我只好自己提交给自己了,使用私有的myca来给youxia颁发证书。使用的命令为?keytool -gencert -alias myca -infile youxia. certreq -outfile youxia. cer,文件?youxia. cer?就是由myca颁发的证书。使用?keytool -printcert -v
25、-file youxia. cer?命令可以查看该证书。证书回复已安装在密钥库中youxiax550v keytool -list -v -alias youxia然后,申请者收到ca颁发的证书后,叮以使用?keytool -importcert -alias youxia -file youxia. cer?将证书导入到keystore屮。导入证书后,再使 用?keytool -list -v -alias youxia?查看,会看到完整的证书链,如下图:力u名:youxia创建日期:2015-4-21杀目类型:privatekeyentry 址电链长度:2将证书导入keystore之后,可
26、以查看完整的证,st*,c=cn所有著:cn=youxia? ou=develop department, 0二, l=发希者:cn=ca, ou=ca department, 0二, l二汀序列号:1820c03c有舉期开始日期:tue apr 21 12:44:02 cst 2015,截止日期:mon jul 20 12:44:02md5: 7b:84:e1:do:22:63:75:d0:bd:a5:1a:65:4a:ba:1c:78sha1: 49:f6:28:75:1o:fb:c2:af:a2:58:aa:43:eb:48:a8:06:47:f0:f8:20 | sha256: f2:81:f6:af:51:5c:5b:e1:3b:c2:af:dc:cd:b6:16:fc:26:b1:51
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 8 沏茶问题(说课稿)-2024-2025学年四年级上册数学人教版001
- Unit 8 I can do this for you?(说课稿)-2024-2025学年译林版(三起)(2024)英语三年级上册
- Review Module Unit 1(说课稿)-2023-2024学年外研版(三起)英语五年级下册
- 2024-2025学年新教材高中生物 第5章 基因突变及其他变异 微专题六 遗传变异相关的解题方法说课稿 新人教版必修第二册
- 2025合同样例舞台灯光音响租赁合同范本
- 2024春八年级语文下册 第1单元 2回延安说课稿 新人教版
- 5草船借箭说课稿-2023-2024学年五年级下册语文统编版
- Unit1 Making friends(说课稿)-2024-2025学年人教PEP版(2024)英语三年级上册
- 2024-2025学年高中化学 第一章 物质结构元素周期律 第一节 元素周期表第3课时说课稿3 新人教版必修2
- 阳光板雨棚施工方案
- 人教版(2024新版)七年级上册数学第六章《几何图形初步》测试卷(含答案)
- 2025届高三数学一轮总复习 第六章 专题六 几何体的外接球与内切球问题配套课件
- 引水隧洞施工支洞专项施工方案
- JT-T-496-2018公路地下通信管道高密度聚乙烯硅芯塑料管
- 贵州省铜仁市2024年中考英语模拟试卷(含答案)
- DB43-T 2939-2024 酱腌菜咸胚中亚硝酸盐的测定顶空-气相色谱法
- 食材配送投标方案技术标
- 再见深海合唱简谱【珠海童年树合唱团】
- 高中物理 选修1 第四章 光(折射反射干涉衍射偏振)(2024人教版)
- 计算机安全弱口令风险
- 舜宇集团2024测试题
评论
0/150
提交评论